Функция JetCreateDatabase2

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

Функция JetCreateDatabase2

Функция JetCreateDatabase2 создает и присоединяет файл базы данных для использования с ядром СУБД ESE с указанным максимальным размером базы данных. Вызов JetCreateDatabase2 с параметром cpgDatabaseSizeMax , равным нулю, идентичен вызову JetCreateDatabase с параметром szConnect , имеющим значение NULL. В настоящее время на каждый экземпляр можно создать до семи баз данных.

    JET_ERR JET_API JetCreateDatabase2(
      __in          JET_SESID sesid,
      __in          const tchar* szFilename,
      __in          const unsigned long cpgDatabaseSizeMax,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

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

szFilename

Имя базы данных, которую требуется создать.

cpgDatabaseSizeMax

Максимальный размер (в страницах базы данных) для базы данных. Размер страницы базы данных по умолчанию составляет 4 КБ, и его можно изменить с помощью JetSetSystemParameter перед созданием базы данных.

Передача нуля означает, что ядро СУБД не применяет максимум.

pdbid

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

grbit

Группа битов, задающая ноль или несколько следующих параметров.

Значение

Значение

JET_bitDbOverwriteExisting

По умолчанию, если вызывается JetCreateDatabase или JetCreateDatabase2 и база данных уже существует, вызов API завершится ошибкой и исходная база данных не будет перезаписана. JET_bitDbOverwriteExisting изменит это поведение, и старая база данных будет перезаписана новой. Windows XP и более поздних версий.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff отключает ведение журнала. Установка этого бита теряет возможность воспроизведения файлов журнала и восстановления базы данных в согласованном состоянии после катастрофического события.

JET_bitDbShadowingOff

Установка JET_bitDbShadowingOff приведет к отключению дублирования некоторых внутренних структур баз данных (тень). Дублирование этих структур выполняется для обеспечения устойчивости, поэтому установка JET_bitDbShadowingOff приведет к удалению этой устойчивости.

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errDatabaseDuplicate

База данных с именем szFilename уже существует. При возврате этой ошибки база данных не присоединяется.

JET_errDatabaseInUse

Может быть возвращено, если был запрошен монопольный доступ, но не может быть предоставлен, или если другой сеанс уже открыл базу данных исключительно.

JET_errDatabaseInvalidPages

Возвращается, если параметр cpgDatabaseSizeMax превышает максимально допустимое количество страниц в базе данных. Текущее максимальное значение — 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

В szFilename указан недопустимый путь. Значение szFilename должно быть не равно NULL. По умолчанию szFilename должно указывать на каталог, который существует. Путь будет создан, если задан JET_paramCreatePathIfNotExist (см. Раздел JetSetSystemParameter).

JET_errDatabaseLocked

Указывает, что другой сеанс уже открыл базу данных исключительно (с помощью JET_bitDbExclusive).

JET_errDatabaseNotFound

База данных ранее не была присоединена (см. JetAttachDatabase).

JET_errDatabaseSharingViolation

Файл базы данных уже присоединен другим сеансом.

JET_errInTransaction

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

JET_errInvalidDatabase

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

JET_errOneDatabasePerSession

Предпринята попытка открыть несколько баз данных, и JET_paramOneDatabasePerSession задано. См. раздел Системные параметры.

JET_errOutOfMemory

В системе недостаточно ресурсов.

JET_errTooManyAttachedDatabases

Для каждого экземпляра может быть присоединено только конечное число баз данных. В настоящее время это ограничение составляет семь баз данных на экземпляр.

JET_wrnDatabaseAttached

Некритичное предупреждение, указывающее, что файл базы данных уже присоединен к этому сеансу.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly указывает, что файл был присоединен только для чтения, но JetCreateDatabase не прошел JET_bitDbReadOnly. База данных по-прежнему открыта с доступом только для чтения.

Комментарии

Если база данных, указанная в szFilename , существует и JET_bitDbOverwriteExisting не передана, вызов API завершится ошибкой. Если был передан JET_bitDbOverwriteExisting, сначала удаляется старый файл базы данных.

Если API создает файл базы данных, а затем получает еще одну ошибку, он очистит и удалит файл.

JetCreateDatabase2 неявно откроет базу данных. Впоследствии не нужно вызывать JetOpenDatabase.

Требования

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

Клиент

Требуется Windows Vista, Windows XP или Windows 2000 Professional.

Сервер

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

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

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

Библиотека

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

DLL

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

Юникод

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

См. также:

Расширяемые файлы подсистемы хранилища
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Системные параметры