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