Функция JetAttachDatabase2
Применимо к: Windows | Windows Server
Функция JetAttachDatabase2
Функция JetAttachDatabase2 присоединяет файл базы данных для использования с экземпляром базы данных и задает максимальный размер этой базы данных. Чтобы использовать базу данных, ее необходимо открыть с помощью JetOpenDatabase.
JET_ERR JET_API JetAttachDatabase2(
__in JET_SESID sesid,
__in const tchar* szFilename,
__in const unsigned long cpgDatabaseSizeMax,
__in JET_GRBIT grbit
);
Параметры
sesid
Контекст сеанса базы данных, который будет использоваться для вызова API.
szFilename
Имя присоединяемой базы данных.
cpgDatabaseSizeMax
Максимальный размер базы данных на страницах базы данных. Размер страницы базы данных по умолчанию составляет 4 килобайта, которые можно изменить с помощью функции JetSetSystemParameter перед созданием базы данных.
Передача нуля означает, что ядром СУБД не применяется максимальное значение.
grbit
Группа битов, содержащая параметры, которые будут использоваться для этого вызова, которые включают ноль или более следующих элементов:
Значение |
Значение |
---|---|
JET_bitDbDeleteCorruptIndexes |
Если JET_paramEnableIndexChecking задано, все индексы по данным Юникода будут удалены. Дополнительные сведения см. в разделе "Примечания". |
JET_bitDbDeleteUnicodeIndexes |
Все индексы по данным Юникода будут удалены, независимо от настройки JET_paramEnableIndexChecking. Дополнительные сведения см. в разделе "Примечания". |
JET_bitDbReadOnly |
Предотвращает изменения базы данных. |
JET_bitDbUpgrade |
Зарезервировано для последующего использования. |
Возвращаемое значение
Функция возвращает один из кодов ошибок JET_ERR. Ниже приведены наиболее часто возвращаемые значения. (Полный список ошибок для этого API см. в разделе Расширяемые коды ошибок подсистемы хранилища.)
Код возврата |
Описание |
---|---|
JET_errSuccess |
Операция выполнена успешно. |
JET_errBackupInProgress |
Подключение базы данных во время резервного копирования запрещено. |
JET_errDatabaseFileReadOnly |
Файл базы данных, указанный szFilename , должен быть записываемым. Атрибут Read-Only не должен быть задан, а запущенный процесс должен иметь достаточные привилегии для записи в файл. |
JET_errDatabaseInUse |
Файл базы данных уже открыт другим процессом. |
JET_errDatabaseInvalidPath |
В szFilename указан недопустимый путь. Значение szFilename должно быть не равно NULL и ссылаться на допустимый путь. |
JET_errDatabaseSharingViolation |
Файл базы данных уже подключен другим сеансом. |
JET_errFileNotFound |
Файл, указанный в szFilename , не существует. |
JET_errPrimaryIndexCorrupted |
Произошла ошибка с первичным индексом. Это может быть физическое повреждение (например, повреждение диска или памяти). Он также может быть возвращен при присоединении базы данных, измененной в последнее время в старой операционной системе, и первичный индекс находится по столбцу с данными Юникода. Дополнительные сведения об индексах по данным Юникода см. в примечаниях. |
JET_errSecondaryIndexCorrupted |
Возникает ошибка со вторичным индексом. Это может быть физическое повреждение (например, повреждение диска или памяти). Он также может быть возвращен при присоединении базы данных, измененной в последнее время в старой операционной системе, и вторичный индекс находится по столбцу с данными Юникода. Дополнительные сведения об индексах по данным Юникода см. в примечаниях. Вторичные индексы полностью перестраиваются при дефрагментации базы данных с помощью автономной программы с помощью следующей команды: esentutl -d. |
JET_errTooManyAttachedDatabases |
Для каждого экземпляра можно подключить только ограниченное число баз данных. В настоящее время это ограничение составляет семь баз данных на экземпляр. |
JET_wrnDatabaseAttached |
Некритичное предупреждение, указывающее, что файл базы данных уже подключен к этому сеансу. |
Комментарии
Файл базы данных отсоединяется с помощью JetDetachDatabase или JetDetachDatabase2.
Примечания см. в разделе JetAttachDatabase .
Требования
Требование | Значение |
---|---|
Клиент |
Требуется Windows Vista, Windows XP или Windows 2000 Профессиональная. |
Сервер |
Требуется Windows Server 2008, Windows Server 2003 или Windows 2000 Server. |
Верхняя часть |
Объявлено в Esent.h. |
Библиотека |
Используйте ESENT.lib. |
DLL |
Требуется ESENT.dll. |
Юникод |
Реализовано как JetAttachDatabase2W (Юникод) и JetAttachDatabase2A (ANSI). |
См. также:
Файлы расширяемого ядра хранилища
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetAttachDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter