Función JetGetDatabaseInfo

Se aplica a: Windows | Windows Server

Función JetGetDatabaseInfo

La función JetGetDatabaseInfo recupera varios tipos de información sobre la base de datos. Se puede llamar a esta API mientras una base de datos está adjunta o en línea (con JetGetDatabaseInfo) o mientras la base de datos o el motor de base de datos está sin conexión (con JetGetDatabaseFileInfo).

    JET_ERR JET_API JetGetDatabaseInfo(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __out         void* pvResult,
      __in          unsigned long cbMax,
      __in          unsigned long InfoLevel
    );

Parámetros

sesid

Sesión que se va a usar para esta llamada.

dbid

La JET_DBID de la base de datos de la que se va a recuperar la información.

pvResult

Puntero a un búfer que recibirá la información especificada. El tamaño del búfer, en bytes, se pasa en cbMax.

En caso de error, el contenido de pvResult no está definido.

La información almacenada en pvResult depende de InfoLevel.

cbMax

Tamaño, en bytes, del búfer que se pasó en pvResult.

InfoLevel

InfoLevel especifica qué tipo de información se debe recuperar sobre la base de datos especificada. Afecta al modo en que se interpreta pvResult . Algunos InfoLevel solo están disponibles en la versión sin conexión (JetGetDatabaseFileInfo) o en línea (JetGetDatabaseInfo) de la API.

Si el búfer pvResult proporcionado es demasiado pequeño, JET_errInvalidBufferSize o JET_errBufferTooSmall se devolverá en función de InfoLevel.

Value

Significado

JET_DbInfoCollate

Todavía no se admiten y devuelven valores predeterminados. No debe usarse.

JET_DbInfoConnect

Estos InfoLevels están en desuso y no se admiten actualmente. No debe usarse.

JET_DbInfoCountry

Todavía no se admiten y devuelven valores predeterminados. No debe usarse.

JET_DbInfoCp

Todavía no se admiten y devuelven valores predeterminados. No debe usarse.

JET_DbInfoFilename

pvResult se interpretará como un búfer de cadena (char *). Se sugiere un búfer de MAX_PATH, pero no es necesario. Si el búfer no es lo suficientemente largo, se devolverá JET_errBufferTooSmall. La cadena se rellenará con la ruta de acceso de la base de datos para este DBID.

JET_DbInfoFilesize

pvResult se interpretará como DWORD (4 bytes). Devuelve el tamaño de la base de datos en páginas.

JET_DbInfoIsam

Estos InfoLevels están en desuso y no se admiten actualmente. No debe usarse.

JET_DbInfoLCID

(Windows XP y versiones posteriores) Este InfoLevel se especificó originalmente como: JET_DbInfoLangid (Windows 2000)

pvResult se interpretará como un largo. Esto devuelve el identificador de configuración regional (LCID) asociado a esta base de datos.

JET_DbInfoMisc

pvResult se interpretará como un JET_DBINFOMISC. La estructura JET_DBINFOMISC se rellenará con información relativa a la base de datos especificada.

JET_DbInfoOptions

pvResult se interpretará como un JET_GRBIT (DWORD). Esto devuelve si la base de datos se abre en modo exclusivo. Si la base de datos está en modo exclusivo JET_bitDbExclusive se establecerá en el JET_GRBIT proporcionado, de lo contrario, se establece cero. Tenga en cuenta que no se devuelven otras opciones de grbit de base de datos para JetAttachDatabase y JetOpenDatabase .

JET_DbInfoPageSize

Solo está disponible en Windows XP y versiones posteriores. pvResult se interpretará como un long sin signo. Esto devolverá el tamaño de página de la base de datos en bytes.

JET_DbInfoSpaceAvailable

pvResult se interpretará como DWORD. Esto devuelve el espacio disponible para la base de datos en páginas.

JET_DbInfoSpaceOwned

pvResult se interpretará como DWORD. Esto devuelve el espacio de propiedad de la base de datos en páginas.

JET_DbInfoTransactions

pvResult se interpretará como un largo. Esto devolverá uno mayor que el nivel máximo al que se pueden anidar las transacciones. Si se llama a JetBeginTransaction (de forma anidada, es decir, en la misma sesión, sin confirmación o reversión) tantas veces como este valor, en la última llamada JET_errTransTooDeep se devolverá de JetBeginTransaction. Tenga en cuenta que el valor de Windows 2000, Windows XP y Windows Server 2003 es 7.

JET_DbInfoVersion

pvResult se interpretará como un largo. Esto devuelve la versión principal nativa del motor de base de datos. Este valor es 0x620 para Windows 2000, Windows XP y Windows Server 2003.

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_errBufferTooSmall

El tamaño del búfer especificado en cbMax era demasiado pequeño (o no correcto) para contener la información deseada.

JET_errFeatureNotAvailable

Se solicitó InfoLevel JET_DbInfoIsam. Esto no se admite.

JET_errInvalidBufferSize

El tamaño del búfer especificado en cbMax era demasiado pequeño (o no correcto) para contener la información deseada.

JET_errInvalidParameter

Uno de los parámetros proporcionados contenía un valor inesperado o contenía un valor que no tenía sentido cuando se combinaba con el valor de otro parámetro. JetGetDatabaseInfo devolverá este error cuando el JET_DBID proporcionado no sea una base de datos válida (adjunta). JetGetDatabaseFileInfo y JetGetDatabaseInfo devolverán este error cuando no se admita una instancia de InfoLevel solicitada por esa versión de la función.

Si se ejecuta correctamente, los datos solicitados se devolverán en el búfer de salida.

En caso de error, el búfer de salida estará en un estado indefinido.

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 JetGetDatabaseInfoW (Unicode) y JetGetDatabaseInfoA (ANSI).

Consulte también

JET_DBID
JET_ERR
JET_GRBIT
JET_SESID
JET_DBINFOMISC
JET_DBINFOUPGRADE
JetGetDatabaseFileInfo