Функция JetGetTableInfo

Применимо к: Windows | Windows Server

Функция JetGetTableInfo

Функция JetGetTableInfo извлекает различные сведения о таблице в базе данных.

    JET_ERR JET_API JetGetTableInfo(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

Параметры

sesid

Контекст сеанса базы данных, используемый для вызова API.

tableid

Таблица, к которому применяются сведения.

pvResult

Указатель на буфер, который будет получать сведения. Тип буфера зависит от InfoLevel. За правильное выравнивание буфера отвечает вызывающий объект.

cbMax

Размер (в байтах) буфера, переданного в pvResult.

InfoLevel

Тип сведений, которые будут получены для таблицы, указанной tableid. Формат данных, хранящихся в pvResult , зависит от InfoLevel.

Для этого параметра можно задать следующие параметры:

Значение

Значение

JET_TblInfo

PvResult интерпретируется как JET_OBJECTINFO структура. Если метод завершается успешно, структура JET_OBJECTINFO заполняется соответствующими данными. В случае сбоя содержимое не определено.

JET_TblInfoDbid

PvResult рассматривается как массив из двух JET_DBID объектов. Идентификатор базы данных, владеющей таблицей, хранится в этом массиве дважды.

JET_TblInfoDumpTable

JET_TblInfoDumpTable не рекомендуется. API вернет JET_errFeatureNotAvailable.

JET_TblInfoName

JET_TblInfoName извлекает имя таблицы и сохраняет его в pvResult. Если буфер слишком мал, поведение не определено.

JET_TblInfoMostMany

JET_TblInfoMostMany извлекает имя таблицы и сохраняет его в pvResult. Если буфер слишком мал, поведение не определено.

JET_TblInfoOLC

JET_TblInfoOLC не рекомендуется. API вернет JET_errFeatureNotAvailable.

JET_TblInfoRvt

JET_TblInfoRvt не рекомендуется. API вернет JET_errQueryNotSupported.

JET_TblInfoResetOLC

JET_TblInfoResetOLC не рекомендуется. API вернет JET_errFeatureNotAvailable.

JET_TblInfoSpaceAlloc

PvResult интерпретируется как массив из двух ULONG:

  • Первый ULONG — это количество страниц в таблице.

  • Второе значение ULONG — это целевая плотность страниц для таблицы.

JET_TblInfoSpaceAvailable

PvResult интерпретируется как ULONG. ULONG — это сумма количества страниц, доступных в таблице, ее индексов и дерева длинных значений.

JET_TblInfoSpaceOwned

PvResult интерпретируется как ULONG. ULONG — это сумма количества страниц, принадлежащих таблице (включая ее индексы, дерево длинных значений и все доступные в ней страницы).

JET_TblInfoSpaceUsage

Поведение API зависит от размера буфера, передаваемого в API. Два значения cbMax должны быть не менее ( 2 * sizeof( ULONG ) ).

  • Если cbMax имеет значение ( 2 * sizeof( ULONG ) ), pvResult интерпретируется как массив из двух ULONG:

    • Первый ULONG — это количество принадлежащих экстентов таблицы.

    • Второй ULONG — это количество доступных экстентов таблицы.

  • PvResult интерпретируется как массив из:

    • Первый ULONG — это количество принадлежащих экстентов таблицы.

    • Второй ULONG — это количество доступных экстентов таблицы.

JET_TblInfoTemplateTableName

pvResult интерпретируется как буфер строки. Буфер должен быть не менее JET_cbNameMost + 1, включая завершающий значение NULL. Если таблица является производной таблицей, буфер будет заполнен именем таблицы, от которой производная таблица унаследовала свой DDL. Если таблица не является производной, буфер будет пустой строкой.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errBufferTooSmall

Буфер был слишком мал.

JET_errFeatureNotAvailable

Указан нерекомендуемый InfoLevel .

JET_errInvalidBufferSize

Буфер был неправильного размера.

JET_errInvalidOperation

Переданная таблица была временной, и запрошенный InfoLevel не может быть получен для временной таблицы.

JET_errObjectNotFound

Переданная таблица была временной, и запрошенный InfoLevel не может быть получен для временной таблицы.

JET_errQueryNotSupported

InfoLevel не поддерживается.

JET_errTableInUse

Таблица используется другой операцией базы данных.

JET_errTableLocked

Таблица заблокирована другой операцией базы данных.

JET_wrnTableInUseBySystem

Таблица используется системой. Это предупреждение является некритичным.

Комментарии

Некоторые фрагменты данных недопустимы для временных таблиц (см. Раздел JetOpenTempTable).

Табличная статистика включает количество записей и количество страниц в кластеризованном индексе (то есть индексе, содержавом данные записи). Доступ к статистике индекса осуществляется отдельно по имени с помощью JetGetIndexInfo или JetGetTableIndexInfo.

Требования

Требование Значение

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная.

Сервер

Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

Юникод

Реализовано как JetGetTableInfoW (Юникод) и JetGetTableInfoA (ANSI).

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_OBJECTINFO
JetGetIndexInfo
JetGetObjectInfo
JetGetTableIndexInfo
JetOpenTempTable