Функция 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