JetCreateTable-Funktion
Letzte Änderung: Freitag, 27. Februar 2015
Gilt für: Windows | Windows Server
JetCreateTable-Funktion
Die JetCreateTable -Funktion erstellt eine leere Tabelle in einer ESE-Datenbank.
JET_ERR JET_API JetCreateTable(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in unsigned long lPages,
__in unsigned long lDensity,
__out JET_TABLEID* ptableid
);
Parameter
sesid
Die Sitzungskontext für die Datenbank verwenden.
DBID
Die Datenbank-ID verwendet.
szTableName
Der Name des Indexes zu erstellen.
Der Name muss gemäß den folgenden Regeln formatiert sein:
Kleiner sein als der JET_cbNameMost, einschließlich nicht das abschließende NULLZEICHEN.
Werden von den folgenden Satz von Zeichen: 0-9, A bis Z, a bis z und alle anderen Interpunktionszeichen mit Ausnahme von "!" (Ausrufezeichen) "," (Komma), "[" (eckige Klammer links) und "]" (eckige Klammer rechts) – d. h. ASCII-Zeichen 0 x 20, 0 x 22 bis 0x2d, 0x2f durch 0x5a, 0x5c, 0x5d bis 0x7f.
Nicht mit einem Leerzeichen beginnen.
Werden, der mindestens ein nicht-Leerzeichen.
lPages
Die anfängliche Anzahl der Datenbankseiten, die für die Tabelle reserviert werden. Durch Angeben einer Zahl, die größer als eine Fragmentierung reduzieren kann, wenn viele Zeilen in diese Tabelle eingefügt werden.
lDensity
Die Tabelle Dichte Prozentpunkte. Die Zahl muss entweder 0 oder im Bereich von 20 bis 100 sein. Übergeben 0 bedeutet, dass der Standardwert verwendet werden soll. Der Standardwert ist 80.
ptableid
Bei Erfolg wird in diesem Feld die Verzeichnis-ID zurückgegeben. Der Wert ist nicht definiert, wenn die API keine JET_errSuccess zurückgibt.
Return Value
Diese Funktion gibt den Datentyp der JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehler und Fehler behandeln Parameter.
Rückgabecode |
Beschreibung |
---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errCallbackNotResolved |
Die Callback-Funktion konnte nicht aufgelöst werden. Die DLL kann nicht gefunden, oder die Funktion in der DLL kann nicht gefunden werden. Ausreichende Protokollierung aktiviert, wird das Ereignisprotokoll weitere Details bereitstellen. |
JET_errCannotIndex |
Es wurde versucht, über einen Treuhandservice-Update oder SLV-Spalte (Beachten Sie, dass Spalten SLV veraltet sind) indizieren. |
JET_errCannotNestDDL |
Wenn Ptablecreate -> JET_errInvalidGrbit JET_bitTableCreateTemplateTable gibt, aber Ptablecreate -> SzTemplateTableName auf NULL festgelegt ist. |
JET_errColumnDuplicate |
Eine Spalte ist bereits vorhanden. |
JET_errColumnNotFound |
Es wurde versucht, eine nicht vorhandene Spalte zu indizieren. Versuch, bedingt für eine nicht vorhandene Spalte indizieren kann auch dieser Fehler erzeugen. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzufügen. Es sollte nicht mehr als eine Autoincrement-Spalte und nicht mehr als eine Version-Spalte pro Tabelle. |
JET_errDensityInvalid |
Im UlDensity -Member in der JET_TABLECREATE oder JET_TABLECREATE2 -Struktur wurde eine ungültige Dichte übergeben. |
JET_errDDLNotInheritable |
Gibt an, dass die Tabelle mit dem Namen in der SzTemplateTableName -Member der JET_TABLECREATE -Struktur kein als Vorlagentabelle gekennzeichnet ist (d. h. dieser Tabelle keinen JET_bitTableCreateTemplateTable Set). |
JET_errIndexDuplicate |
Es wurde versucht, zwei identische Indizes definieren. |
JET_errIndexHasPrimary |
Es wurde versucht, mehr als einen Primärindex für eine Tabelle angeben. Eine Tabelle muss genau einen Primärindex haben. Wenn kein primärer Index angegeben ist, wird die Datenbank-Engine transparent erstellen. |
JET_errIndexInvalidDef |
Eine ungültige Indexdefinition es wurde angegeben. Die möglichen Ursachen für diese Fehlermeldung angezeigt werden:
|
JET_errIndexTuplesInvalidLimits |
Windows XP und höher. Eine JET_TUPLELIMITS -Struktur angegeben wurde, und seine Grenzen werden nicht unterstützt. Finden Sie im Abschnitt der JET_TUPLELIMITS -Struktur. |
JET_errIndexTuplesNonUniqueOnly |
Windows XP und höher. Ein Tupelindex kann nicht eindeutig sein (d. h. der JET_errInvalidGrbit -Member der Struktur JET_INDEXCREATE darf keinen JET_bitIndexPrimary und JET_bitIndexUnique festlegen). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höher. Ein Tupelindex kann nur über eine einzelne Spalte sein, (d. h., wenn der JET_errInvalidGrbit -Member der JET_INDEXCREATE -Struktur hat JET_bitIndexTuples festgelegt, und der SzKey -Member der JET_INDEXCREATE -Struktur mehr als eine Spalte gibt). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP und höher. Ein Tupelindex darf kein Primärindex sein (d. h. der JET_errInvalidGrbit -Member der JET_INDEXCREATE -Struktur muss über beide JET_bitIndexPrimary und JET_bitIndexTuples festgelegt ist). |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP und höher. Ein Tupelindex erlaubt nicht den CbVarSegMac -Member der Struktur JET_INDEXCREATE festgelegt werden. |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höher. Ein Tupelindex kann nur für Text oder Unicode-Spalte sein. JET_errIndexTuplesTextColumnsOnly führt ein Versuch zum Indizieren von anderen Spalten (z. B. binary-Spalten). |
JET_errInTransaction |
Es wurde versucht, einen Index ohne Versionsinformationen in einer Transaktion zu erstellen. |
JET_errInvalidCodePage |
Der cp -Member der JET_COLUMNCREATE -Struktur wurde nicht auf eine gültige Codepage festgelegt. Die einzigen gültigen Werte für Text-Spalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert (Deutsch, 1252) verwendet. |
JET_errInvalidColumnType |
Der Coltyp -Member der JET_COLUMNCREATE -Struktur wurde nicht auf eine gültige Spaltentyp festgelegt. |
JET_errInvalidCreateIndex |
Einige der Gründe, warum dieser Fehler auftreten kann:
|
JET_errInvalidgrbit |
Eine ungültige Kombination von JET_errInvalidGrbit -Member wurde in JET_TABLECREATE oder JET_TABLECREATE2angegeben. Die Indexdefinition ist ungültig, da das Mitglied JET_errInvalidGrbit inkonsistente Werte enthält. Mögliche Ursachen hierfür sind:
|
JET_errInvalidLanguageId |
Eine ungültige Gebietsschema-ID (LCID) übergeben wurde (entweder über die Lcid Mitglied der JET_UNICODEINDEX -Struktur auf die vom Pidxunicode -Member der JET_INDEXCREATE -Struktur zeigen oder Lcid -Feld der Struktur JET_INDEXCREATE ). |
JET_errInvalidParameter |
Es wurde ein ungültiger Parameter angegeben. Mögliche Ursachen hierfür sind:
|
JET_errRecordTooBig |
Der Datensatz ist zu groß. Die Summe der CbMax -Member der JET_COLUMNCREATE -Struktur für alle festen Spalten muss einen bestimmten Wert nicht überschreiten. |
JET_errTableDuplicate |
Die Tabelle ist bereits vorhanden. |
JET_errTooManyColumns |
Es wurde versucht, zu viele Spalten in der Tabelle hinzu. Eine Tabelle kann nicht mehr als JET_ccolFixedMost feste Spalten nicht mehr als Spalten mit variabler Länge JET_ccolVarMost und nicht mehr als JET_ccolTaggedMost Spalten markiert haben. |
JET_errUnicodeTranslationFail |
Fehler bei dem Versuch, die ein Unicode Column normalisieren. Dies kann durch nicht genügend Systemressourcen verursacht werden. |
Anmerkungen
JetCreateTable erstellt eine Tabelle, die keine Spalten enthält. Um Spalten hinzuzufügen, finden Sie unter JetAddColumn.
Intern ruft JetCreateTableJetCreateTableColumnIndex2, eine JET_TABLECREATE2 -Struktur mit ausfüllen:
JET_TABLECREATE2.cbStruct = Sizeof (JET_TABLECREATE2)
JET_TABLECREATE2.szTableName = SzTableName
JET_TABLECREATE2.ulPages = L_seite
JET_TABLECREATE2.ulDensity = lDensity
JET_TABLECREATE2.TableID = JET_tableidNil
Die anderen Felder der internen JET_TABLECREATE2 -Struktur werden auf 0 (null) oder NULL festgelegt. Ptableid wird bei der Ausgabe auf JET_TABLECREATE2.tableid festgelegt.
Weitere Informationen finden Sie unter JetCreateTableColumnIndex2 .
Wie JetOpenTable, wenn die Anwendung mit dem zurückgegebenen Tableid -Member aus der JET_TABLECREATE2 -Struktur, es sollte in der Regel geschlossen werden mit JetCloseTable.
Voraussetzungen
-Client, |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
Erfordert WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server. |
Kopfzeile |
In Esent.h deklariert. |
Library |
Verwenden Sie ESENT.lib. |
DLL |
"ESENT.dll" erfordert. |
Unicode |
Implementiert als JetCreateTableW (Unicode) und JetCreateTableA (ANSI). |
Siehe auch
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2