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