Функция JetCreateDatabase

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

Функция JetCreateDatabase

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

    JET_ERR JET_API JetCreateDatabase(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szFilename,
      __in_opt      JET_PCSTR szConnect,
      __out         JET_DBID* pdbid,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

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

szFilename

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

szConnect

Зарезервировано для последующего использования. задано значение NULL.

pdbid

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

grbit

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

Значение

Значение

JET_bitDbOverwriteExisting

По умолчанию, если вызывается JetCreateDatabase и база данных уже существует, вызов 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 создает файл базы данных, а затем возвращает другую ошибку, он очистит и удалит файл.

JetCreateDatabase неявно откроет базу данных. В дальнейшем не обязательно вызывать JetOpenDatabase.

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

Юникод

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

См. также:

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