Condividi tramite


Funzione JetCreateDatabase2

Si applica a: Windows | Windows Server

Funzione JetCreateDatabase2

La funzione JetCreateDatabase2 crea e collega un file di database da usare con il motore di database ESE con una dimensione massima del database specificata. La chiamata a JetCreateDatabase2 con cpgDatabaseSizeMax impostata su zero è identica alla chiamata di JetCreateDatabase con szConnect impostato su NULL. Attualmente è possibile creare fino a sette database per istanza.

    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
    );

Parametri

sesid

Contesto della sessione di database da usare per la chiamata API.

szFilename

Nome del database da creare.

cpgDatabaseSizeMax

Dimensioni massime, nelle pagine del database, per il database. Le dimensioni predefinite della pagina del database sono di 4 kilobyte e possono essere modificate con JetSetSystemParameter prima di creare un database.

Se si passa zero, non è previsto alcun limite massimo applicato dal motore di database.

pdbid

Puntatore a un buffer che, in una chiamata riuscita, contiene l'identificatore del database. In caso di errore, il valore non è definito.

grbit

Un gruppo di bit che specifica zero o più delle opzioni seguenti.

Valore

Significato

JET_bitDbOverwriteExisting

Per impostazione predefinita, se viene chiamato JetCreateDatabase o JetCreateDatabase2 e il database esiste già, la chiamata API avrà esito negativo e il database originale non verrà sovrascritto. JET_bitDbOverwriteExisting modifica questo comportamento e il database precedente verrà sovrascritto con uno nuovo. Windows XP e versioni successive.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff disattiva la registrazione. L'impostazione di questo bit perde la possibilità di riprodurre i file di log e ripristinare il database in uno stato utilizzabile coerente dopo un evento irreversibile.

JET_bitDbShadowingOff

L'impostazione di JET_bitDbShadowingOff disabilita la duplicazione di alcune strutture di database interne (shadowing). La duplicazione di queste strutture viene eseguita per la resilienza, quindi l'impostazione JET_bitDbShadowingOff rimuoverà tale resilienza.

Valore restituito

Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sui possibili errori ESE, vedere Errori del motore di archiviazione estendibile e parametri di gestione degli errori.

Codice restituito

Descrizione

JET_errSuccess

Operazione riuscita.

JET_errDatabaseDuplicate

Il database denominato in szFilename esiste già. Quando viene restituito questo errore, il database non viene collegato.

JET_errDatabaseInUse

Può essere restituito se è stato richiesto l'accesso esclusivo, ma non è stato possibile concedere o se un'altra sessione ha già aperto il database in modo esclusivo.

JET_errDatabaseInvalidPages

Restituito quando cpgDatabaseSizeMax è maggiore del numero massimo di pagine consentite in un database. Il valore massimo corrente è 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

È stato specificato un percorso non valido in szFilename. szFilename deve essere diverso da NULL. Per impostazione predefinita, szFilename deve puntare a una directory esistente. Il percorso verrà creato se JET_paramCreatePathIfNotExist è impostato (vedere JetSetSystemParameter).

JET_errDatabaseLocked

Indica che un'altra sessione ha già aperto il database in modo esclusivo (tramite JET_bitDbExclusive).

JET_errDatabaseNotFound

Il database non è stato collegato in precedenza (vedere JetAttachDatabase).

JET_errDatabaseSharingViolation

Il file di database è già stato collegato da una sessione diversa.

JET_errInTransaction

È stato effettuato un tentativo di creazione di un database durante una transazione.

JET_errInvalidDatabase

È stato effettuato un tentativo di aprire un file che non è un file di database valido.

JET_errOneDatabasePerSession

È stato effettuato un tentativo di apertura di più database e JET_paramOneDatabasePerSession è stato impostato. Vedere Parametri di sistema.

JET_errOutOfMemory

Il sistema ha avuto un numero ridotto di risorse.

JET_errTooManyAttachedDatabases

È possibile collegare solo un numero finito di database per ogni istanza. Il limite è attualmente di sette database per istanza.

JET_wrnDatabaseAttached

Avviso non irreversibile che indica che il file di database è già stato allegato da questa sessione.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly indica che il file è stato collegato in sola lettura, ma JetCreateDatabase non ha superato JET_bitDbReadOnly. Il database è ancora aperto con accesso di sola lettura.

Commenti

Se il database specificato in szFilename esiste e JET_bitDbOverwriteExisting non è stato passato, la chiamata API avrà esito negativo. Se JET_bitDbOverwriteExisting è stato passato, il file di database precedente verrà eliminato per primo.

Se l'API crea un file di database e quindi genera un altro errore, pulisce ed elimina il file.

JetCreateDatabase2 aprirà in modo implicito il database. Non è necessario chiamare successivamente JetOpenDatabase.

Requisiti

Requisito Valore

Client

Richiede Windows Vista, Windows XP o Windows 2000 Professional.

Server

Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Intestazione

Dichiarato in Esent.h.

Libreria

Usare ESENT.lib.

DLL

Richiede ESENT.dll.

Unicode

Implementato come JetCreateDatabase2W (Unicode) e JetCreateDatabase2A (ANSI).

Vedere anche

File del motore di archiviazione estendibile
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Parametri di sistema