Функция 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
Системные параметры