JetCreateDatabase2-Funktion

Gilt für: Windows | Windows Server

JetCreateDatabase2-Funktion

Die JetCreateDatabase2-Funktion erstellt und fügt eine Datenbankdatei an, die mit der ESE-Datenbank-Engine mit einer angegebenen maximalen Datenbankgröße verwendet werden soll. Das Aufrufen von JetCreateDatabase2 , bei dem cpgDatabaseSizeMax auf Null festgelegt ist, ist identisch mit dem Aufrufen von JetCreateDatabase mit szConnect , die auf NULL festgelegt ist. Derzeit können bis zu sieben Datenbanken pro instance erstellt werden.

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

Parameter

sesid

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

szFilename

Der Name der zu erstellenden Datenbank.

cpgDatabaseSizeMax

Die maximale Größe auf Datenbankseiten für die Datenbank. Die Standardgröße der Datenbankseite beträgt 4 KB und kann vor dem Erstellen einer Datenbank mit JetSetSystemParameter geändert werden.

Das Übergeben von null bedeutet, dass es kein maximum gibt, das von der Datenbank-Engine erzwungen wird.

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 oder JetCreateDatabase2 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 dieses Verhalten ändert, 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 Möglichkeit, Protokolldateien wiederzuverwenden und die Datenbank nach einem katastrophalen Ereignis in einen konsistenten nutzbaren Zustand wiederherzustellen.

JET_bitDbShadowingOff

Wenn Sie JET_bitDbShadowingOff festlegen, wird die Duplizierung einiger interner Datenbankstrukturen (Shadowing) deaktiviert. Die Duplizierung dieser Strukturen erfolgt aus Gründen der Resilienz, sodass das Festlegen JET_bitDbShadowingOff diese Resilienz beseitigt.

Rückgabewert

Diese Funktion gibt den JET_ERR-Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errDatabaseDuplicate

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

JET_errDatabaseInUse

Kann zurückgegeben werden, wenn der exklusive Zugriff angefordert, aber nicht gewährt werden konnte oder wenn die Datenbank bereits von einer anderen Sitzung exklusiv geöffnet wurde.

JET_errDatabaseInvalidPages

Wird zurückgegeben, wenn cpgDatabaseSizeMax größer ist als die maximale Anzahl von Seiten, die in einer Datenbank zulässig sind. Das aktuelle Maximum ist 2147483646 (0x7ffffffe).

JET_errDatabaseInvalidPath

In szFilename wurde ein ungültiger Pfad angegeben. szFilename muss nicht NULL sein. Standardmäßig muss szFilename auf ein vorhandenes Verzeichnis verweisen. Der Pfad wird erstellt, wenn JET_paramCreatePathIfNotExist festgelegt ist (siehe JetSetSystemParameter).

JET_errDatabaseLocked

Gibt an, dass bereits eine andere Sitzung die Datenbank exklusiv geöffnet hat (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

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

JET_errInvalidDatabase

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

JET_errOneDatabasePerSession

Es wurde versucht, mehr als eine Datenbank zu öffnen, und JET_paramOneDatabasePerSession festgelegt wurde. Siehe Systemparameter.

JET_errOutOfMemory

Die Ressourcen des Systems wurden knapp.

JET_errTooManyAttachedDatabases

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

JET_wrnDatabaseAttached

Eine nicht eindeutige 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, aber JetCreateDatabase nicht JET_bitDbReadOnly. 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 zuerst die alte Datenbankdatei gelöscht.

Wenn die API eine Datenbankdatei erstellt und dann auf einen anderen Fehler stößt, sauber sie auf und löscht die Datei.

JetCreateDatabase2 öffnet implizit die Datenbank. Es ist nicht erforderlich, JetOpenDatabase anschließ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.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Unicode

Implementiert als JetCreateDatabase2W (Unicode) und JetCreateDatabase2A (ANSI).

Weitere Informationen

Erweiterbare Speichermoduldateien
JET_ERR
JET_DBID
JET_GRBIT
JET_SESID
JetAttachDatabase
JetCloseDatabase
JetCreateDatabase
JetOpenDatabase
JetSetSystemParameter
Systemparameter