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


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