Compartir a través de


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