JetCreateDatabase-Funktion

Gilt für: Windows | Windows Server

JetCreateDatabase-Funktion

Die JetCreateDatabase-Funktion erstellt und fügt eine Datenbankdatei an, die mit der ESE-Datenbank-Engine verwendet werden soll. Das Aufrufen von JetCreateDatabase2 mit cpgDatabaseSizeMax auf 0 (null) ist identisch mit dem Aufrufen von JetCreateDatabase, wobei szConnect auf NULL festgelegt ist. Derzeit können bis zu sieben Datenbanken pro Instanz erstellt werden.

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

Parameter

sesid

Der Datenbanksitzungskontext, der für den API-Aufruf verwendet werden soll.

szFilename

Der Name der zu erstellenden Datenbank.

szConnect

Für die zukünftige Verwendung reserviert. Auf NULL festgelegt.

pdbid

Zeiger auf einen Puffer, der bei einem erfolgreichen Aufruf den Bezeichner der Datenbank enthält. Bei einem Fehler ist der Wert nicht definiert.

grbit

Eine Gruppe von Bits, die null oder mehr der folgenden Optionen angibt.

Wert

Bedeutung

JET_bitDbOverwriteExisting

Wenn JetCreateDatabase aufgerufen wird und die Datenbank bereits vorhanden ist, schlägt der API-Aufruf standardmäßig fehl, und die ursprüngliche Datenbank wird nicht überschrieben. JET_bitDbOverwriteExisting ändert dieses Verhalten, und die alte Datenbank wird mit einer neuen datenbank überschrieben. Windows XP und höher.

JET_bitDbRecoveryOff

JET_bitDbRecoveryOff deaktiviert die Protokollierung. Das Festlegen dieses Bits verliert die Fähigkeit, Protokolldateien wiederzugeben und die Datenbank nach einem schwerwiegenden Ereignis in einen konsistenten verwendbaren Zustand wiederherzustellen.

JET_bitDbShadowingOff

Durch festlegen JET_bitDbShadowingOff wird die Duplizierung einiger interner Datenbankstrukturen (Schatten) deaktiviert. Die Duplizierung dieser Strukturen erfolgt aus Gründen der Resilienz, sodass durch festlegen JET_bitDbShadowingOff diese Resilienz entfernt wird.

Rückgabewert

Diese Funktion gibt den JET_ERR Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errDatabaseDuplicate

Die Datenbank mit dem Namen szFilename ist bereits vorhanden. Wenn dieser Fehler zurückgegeben wird, wird die Datenbank nicht angefügt.

JET_errDatabaseInUse

Kann zurückgegeben werden, wenn exklusiver Zugriff angefordert wurde, aber nicht gewährt werden konnte, oder wenn eine andere Sitzung die Datenbank bereits exklusiv geöffnet hat.

JET_errDatabaseInvalidPages

Wird zurückgegeben, wenn cpgDatabaseSizeMax größer als die maximal zulässige Anzahl von Seiten in einer Datenbank ist. Der aktuelle Höchstwert ist 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

In szFilenamewurde ein ungültiger Pfad angegeben. szFilename muss ungleich NULL sein. Standardmäßig muss szFilename auf ein verzeichnis verweisen, das vorhanden ist. Der Pfad wird erstellt, wenn JET_paramCreatePathIfNotExist festgelegt ist (siehe JetSetSystemParameter).

JET_errDatabaseLocked

Gibt an, dass die Datenbank bereits in einer anderen Sitzung exklusiv geöffnet wurde (mit JET_bitDbExclusive).

JET_errDatabaseNotFound

Die Datenbank wurde zuvor nicht angefügt (siehe JetAttachDatabase).

JET_errDatabaseSharingViolation

Die Datenbankdatei wurde bereits von einer anderen Sitzung angefügt.

JET_errInTransaction

Es wurde versucht, eine Datenbank während einer Transaktion zu erstellen.

JET_errInvalidDatabase

Es wurde versucht, eine Datei zu öffnen, die keine gültige Datenbankdatei ist.

JET_errOneDatabasePerSession

Es wurde versucht, mehrere Datenbanken zu öffnen, und JET_paramOneDatabasePerSession wurde festgelegt. Weitere Informationen finden Sie unter Datenbankparameter.

JET_errOutOfMemory

Fehler beim Vorgang, weil kein Arbeitsspeicher zugeordnet werden konnte.

JET_errTooManyAttachedDatabases

Pro Instanz kann nur eine begrenzte Anzahl von Datenbanken angefügt werden. Der Grenzwert beträgt derzeit sieben Datenbanken pro Instanz.

JET_wrnDatabaseAttached

Eine nichttale Warnung, die angibt, dass die Datenbankdatei bereits von dieser Sitzung angefügt wurde.

JET_wrnFileOpenReadOnly

JET_wrnFileOpenReadOnly gibt an, dass die Datei schreibgeschützt angefügt wurde, JetCreateDatabase jedoch nicht JET_bitDbReadOnly übergeben hat. Die Datenbank wird weiterhin mit schreibgeschütztem Zugriff geöffnet.

Bemerkungen

Wenn die in szFilename angegebene Datenbank vorhanden ist und JET_bitDbOverwriteExisting nicht übergeben wurde, schlägt der API-Aufruf fehl. Wenn JET_bitDbOverwriteExisting übergeben wurde, wird die alte Datenbankdatei zuerst gelöscht.

Wenn die API eine Datenbankdatei erstellt und dann auf einen anderen Fehler trifft, wird die Datei bereinigt und gelöscht.

JetCreateDatabase öffnet die Datenbank implizit. Es ist nicht notwendigerweise erforderlich, jetOpenDatabaseanschließend aufzurufen.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Header

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Wird als JetCreateDatabaseW (Unicode) und JetCreateDatabaseA (ANSI) implementiert.

Weitere Informationen

Erweiterbare Storage-Engine-Dateien
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase2
JetOpenDatabase
JetSetSystemParameter
Systemparameter