Condividi tramite


Funzione JetCreateDatabase

Si applica a: Windows | Windows Server

Funzione JetCreateDatabase

La funzione JetCreateDatabase crea e collega un file di database da usare con il motore di database ESE. 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 JetCreateDatabase(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szFilename,
      __in_opt      JET_PCSTR szConnect,
      __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.

szConnect

Riservato per utilizzi futuri. Impostata su NULL.

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 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 database.

JET_errOutOfMemory

L'operazione non è riuscita perché non è stato possibile allocare memoria.

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.

JetCreateDatabase aprirà in modo implicito il database. Non è necessariamente 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 JetCreateDatabaseW (Unicode) e JetCreateDatabaseA (ANSI).

Vedere anche

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