Поделиться через


Функция JetGetDatabaseInfo

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

Функция JetGetDatabaseInfo

Функция JetGetDatabaseInfo извлекает различные типы сведений о базе данных. Этот API можно вызывать, когда база данных подключена или подключена к сети (с помощью JetGetDatabaseInfo) или когда база данных или ядро СУБД находится в автономном режиме (с помощью JetGetDatabaseFileInfo).

    JET_ERR JET_API JetGetDatabaseInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

Параметры

sesid

Сеанс, используемый для этого вызова.

dbid

JET_DBID для базы данных, из которого извлекаются сведения.

pvResult

Указатель на буфер, который будет получать указанные сведения. Размер буфера в байтах передается в cbMax.

При сбое содержимое pvResult не определено.

Сведения, хранящиеся в pvResult, зависят от InfoLevel.

cbMax

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

InfoLevel

InfoLevel указывает, какой тип сведений следует извлечь о указанной базе данных. Это влияет на интерпретацию pvResult . Некоторые infoLevel доступны только в автономной версии API (JetGetDatabaseFileInfo) или в сети (JetGetDatabaseInfo).

Если предоставленный буфер pvResult слишком мал, в зависимости от InfoLevel будут возвращены JET_errInvalidBufferSize или JET_errBufferTooSmall.

Значение

Значение

JET_DbInfoCollate

Пока не поддерживается и возвращаются значения по умолчанию. Не используйте.

JET_DbInfoConnect

Эти InfoLevels являются устаревшими и в настоящее время не поддерживаются. Не используйте.

JET_DbInfoCountry

Пока не поддерживается и возвращаются значения по умолчанию. Не используйте.

JET_DbInfoCp

Пока не поддерживается и возвращаются значения по умолчанию. Не используйте.

JET_DbInfoFilename

pvResult будет интерпретирован как буфер строки (char *). Рекомендуется использовать буфер MAX_PATH, но не требуется. Если буфер недостаточно длинный, возвращается JET_errBufferTooSmall. Строка будет заполнена путем к базе данных для этого DBID.

JET_DbInfoFilesize

pvResult будет интерпретироваться как DWORD (4 байта). Возвращает размер базы данных в страницах.

JET_DbInfoIsam

Эти InfoLevels являются устаревшими и в настоящее время не поддерживаются. Не используйте.

JET_DbInfoLCID

(Windows XP и более поздние версии) Этот InfoLevel изначально был указан как JET_DbInfoLangid (Windows 2000)

pvResult будет интерпретироваться как long. При этом возвращается идентификатор языкового стандарта (LCID), связанный с этой базой данных.

JET_DbInfoMisc

pvResult будет интерпретироваться как JET_DBINFOMISC. Структура JET_DBINFOMISC будет заполнена информацией, относящейся к указанной базе данных.

JET_DbInfoOptions

pvResult будет интерпретироваться как JET_GRBIT (DWORD). Это возвращает значение, указывающее, открыта ли база данных в монопольном режиме. Если база данных находится в монопольном режиме, JET_bitDbExclusive будет задана в предоставленном JET_GRBIT , в противном случае устанавливается ноль. Обратите внимание, что другие параметры grbit базы данных для JetAttachDatabase и JetOpenDatabase не возвращаются.

JET_DbInfoPageSize

Доступно только в Windows XP и более поздних версиях. pvResult будет интерпретироваться как длинная строка без знака. При этом будет возвращен размер страницы базы данных в байтах.

JET_DbInfoSpaceAvailable

pvResult будет интерпретироваться как DWORD. При этом возвращается доступное пространство для базы данных на страницах.

JET_DbInfoSpaceOwned

pvResult будет интерпретироваться как DWORD. При этом возвращается принадлежающее ей пространство для базы данных на страницах.

JET_DbInfoTransactions

pvResult будет интерпретироваться как long. При этом возвращается один уровень, превышающий максимальный уровень, к которому можно вложить транзакции. Если JetBeginTransaction вызывается (в вложенном режиме, то есть в том же сеансе без фиксации или отката) столько раз, сколько это значение, при последнем вызове будет возвращено JET_errTransTooDeep из JetBeginTransaction. Обратите внимание, что в Windows 2000, Windows XP и Windows Server 2003 значение равно 7.

JET_DbInfoVersion

pvResult будет интерпретироваться как long. При этом возвращается собственная основная версия ядра СУБД. Это значение равно 0x620 для Windows 2000, Windows XP и Windows Server 2003.

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errBufferTooSmall

Размер буфера, заданный в cbMax , был слишком мал (или неправильно) для хранения нужных сведений.

JET_errFeatureNotAvailable

Запрошенный infoLevel был JET_DbInfoIsam. Такой способ связывания не поддерживается.

JET_errInvalidBufferSize

Размер буфера, заданный в cbMax , был слишком мал (или неправильно) для хранения нужных сведений.

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра. Эта ошибка будет возвращена JetGetDatabaseInfo , если предоставленная JET_DBID не является допустимой (подключенной) базой данных. Эта ошибка будет возвращена JetGetDatabaseFileInfo и JetGetDatabaseInfo , если запрошенный InfoLevel не поддерживается этой версией функции.

При успешном выполнении запрошенные данные будут возвращены в выходном буфере.

При сбое выходной буфер будет находиться в неопределенном состоянии.

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

Юникод

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

См. также:

JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo