Función JetCreateDatabase2
Se aplica a: Windows | Windows Server
Función JetCreateDatabase2
La función JetCreateDatabase2 crea y adjunta un archivo de base de datos que se usará con el motor de base de datos ESE con un tamaño máximo de base de datos especificado. Llamar a JetCreateDatabase2 con cpgDatabaseSizeMax establecido en cero es idéntico a llamar a JetCreateDatabase con szConnect establecido en NULL. Actualmente se pueden crear hasta siete bases de datos por instancia.
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
);
Parámetros
sesid
Contexto de sesión de base de datos que se va a usar para la llamada API.
szFilename
Nombre de la base de datos que se va a crear.
cpgDatabaseSizeMax
Tamaño máximo, en páginas de base de datos, para la base de datos. El tamaño de página de la base de datos predeterminado es de 4 kilobytes y se puede cambiar con JetSetSystemParameter antes de crear una base de datos.
Pasar cero significa que no hay ningún máximo aplicado por el motor de base de datos.
pdbid
Puntero a un búfer que, en una llamada correcta, contiene el identificador de la base de datos. En caso de error, el valor no está definido.
grbit
Un grupo de bits que especifica cero o más de las siguientes opciones.
Valor |
Significado |
---|---|
JET_bitDbOverwriteExisting |
De forma predeterminada, si se llama a JetCreateDatabase o JetCreateDatabase2 y la base de datos ya existe, se producirá un error en la llamada API y no se sobrescribirá la base de datos original. JET_bitDbOverwriteExisting cambia este comportamiento y la base de datos antigua se sobrescribirá con una nueva. Windows XP y versiones posteriores. |
JET_bitDbRecoveryOff |
JET_bitDbRecoveryOff desactiva el registro. Establecer este bit pierde la capacidad de reproducir archivos de registro y recuperar la base de datos en un estado utilizable coherente después de un evento catastrófico. |
JET_bitDbShadowingOff |
Establecer JET_bitDbShadowingOff deshabilitará la duplicación de algunas estructuras de base de datos internas (sombreado). La duplicación de estas estructuras se realiza para lograr resistencia, por lo que establecer JET_bitDbShadowingOff eliminará esa resistencia. |
Valor devuelto
Esta función devuelve el tipo de datos JET_ERR con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.
Código devuelto |
Descripción |
---|---|
JET_errSuccess |
La operación se ha completado correctamente. |
JET_errDatabaseDuplicate |
La base de datos denominada en szFilename ya existe. Cuando se devuelve este error, la base de datos no se adjunta. |
JET_errDatabaseInUse |
Se puede devolver si se solicitó acceso exclusivo, pero no se pudo conceder, o si otra sesión ya ha abierto la base de datos exclusivamente. |
JET_errDatabaseInvalidPages |
Se devuelve cuando cpgDatabaseSizeMax es mayor que el número máximo de páginas permitidas en una base de datos. El máximo actual es 2147483646 (0x7ffffffe). |
JET_errDatabaseInvalidPath |
Se ha proporcionado una ruta de acceso no válida en szFilename. szFilename debe ser distinto de NULL. De forma predeterminada, szFilename debe apuntar a un directorio que exista. La ruta de acceso se creará si se establece JET_paramCreatePathIfNotExist (consulte JetSetSystemParameter). |
JET_errDatabaseLocked |
Indica que otra sesión ya ha abierto la base de datos exclusivamente (mediante JET_bitDbExclusive). |
JET_errDatabaseNotFound |
La base de datos no se adjuntó previamente (consulte JetAttachDatabase). |
JET_errDatabaseSharingViolation |
El archivo de base de datos ya se ha adjuntado mediante una sesión diferente. |
JET_errInTransaction |
Se intentó crear una base de datos mientras se encontraba en una transacción. |
JET_errInvalidDatabase |
Se intentó abrir un archivo que no es un archivo de base de datos válido. |
JET_errOneDatabasePerSession |
Se intentó abrir más de una base de datos y se estableció JET_paramOneDatabasePerSession. Consulte Parámetros del sistema. |
JET_errOutOfMemory |
El sistema se ha reducido en recursos. |
JET_errTooManyAttachedDatabases |
Solo se puede adjuntar un número finito de base de datos por instancia. El límite es actualmente siete bases de datos por instancia. |
JET_wrnDatabaseAttached |
Advertencia nofatal que indica que este archivo de base de datos ya se ha adjuntado a esta sesión. |
JET_wrnFileOpenReadOnly |
JET_wrnFileOpenReadOnly indica que el archivo se adjuntó de solo lectura, pero JetCreateDatabase no pasó JET_bitDbReadOnly. La base de datos todavía se abre con acceso de solo lectura. |
Comentarios
Si la base de datos especificada en szFilename existe y no se pasó JET_bitDbOverwriteExisting, se producirá un error en la llamada API. Si se pasó JET_bitDbOverwriteExisting, primero se eliminará el archivo de base de datos anterior.
Si la API crea un archivo de base de datos y, a continuación, se produce otro error, se limpiará y eliminará el archivo.
JetCreateDatabase2 abrirá implícitamente la base de datos. No es necesario llamar posteriormente a JetOpenDatabase.
Requisitos
Requisito | Value |
---|---|
Cliente |
Requiere Windows Vista, Windows XP o Windows 2000 Professional. |
Servidor |
Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server. |
Encabezado |
Declarado en Esent.h. |
Library |
Use ESENT.lib. |
Archivo DLL |
Requiere ESENT.dll. |
Unicode |
Se implementa como JetCreateDatabase2W (Unicode) y JetCreateDatabase2A (ANSI). |
Consulte también
Archivos extensibles del motor de almacenamiento
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Parámetros del sistema