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