JetAddColumn-Funktion
Letzte Änderung: Freitag, 27. Februar 2015
Gilt für: Windows | Windows Server
JetAddColumn-Funktion
Die Funktion JetAddColumn fügt eine neue Spalte zu einer vorhandenen Tabelle in einer ESE-Datenbank.
JET_ERR JET_API JetAddColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_COLUMNDEF* pcolumndef,
__in_opt const void* pvDefault,
__in unsigned long cbDefault,
__out_opt JET_COLUMNID* pcolumnid
);
Parameter
sesid
Der Kontext, für den API-Aufruf zu verwendenden Datenbank Sitzung.
TableID
Tabelle, um die Spalte hinzuzufügen.
szColumnName
Der Name der Spalte hinzugefügt. Der Name muss die folgenden Kriterien erfüllen:
Es muss weniger als JET_cbNameMost Zeichen enthalten, einschließlich nicht den Abbruch- NULLsein.
Er darf nur aus der folgenden Zeichen enthalten: 0 bis 9, A bis Z, a bis z und alle anderen Zeichensetzung außer Ausrufezeichen (!), Komma (,), Klammern ([]) und schließenden eckigen Klammer (]) Öffnen – d. h., ASCII-Zeichen 0 x 20, 0 x 22 über 0x2d, 0x2f über 0x5a, 0x5c und 0x5d bis 0x7f.
Es kann nicht mit einem Leerzeichen beginnen.
Es muss mindestens ein nicht-Leerzeichen enthalten.
pcolumndef
Ein Zeiger auf eine JET_COLUMNDEF -Struktur, die die Daten definiert, die in einer Spalte gespeichert werden können.
pvDefault
Ein Zeiger auf einen Puffer, der den Standardwert für die Spalte enthält. Die Länge des Puffers ist CbDefault. Wenn kein Standardwert ist, legen Sie PvDefault auf NULL und CbDefault 0 (null). Standardwerte darf nicht größer als JET_cbColumnMost Bytes für feste Spalten oder JET_cbLVDefaultValueMost Bytes für lange Werte sein. Wenn ein Standardwert größer ist als ist, wird es automatisch abgeschnitten.
Wenn JET_errInvalidGrbit JET_bitColumnUserDefinedDefault festgelegt wurde, wird als Zeiger auf eine Struktur JET_USERDEFINEDDEFAULTPvDefault interpretiert werden.
cbDefault
Die Größe des Puffers, die in PvDefaultangegeben ist in Bytes.
pcolumnid
Ein Zeiger auf eine JET_COLUMNID -Struktur, die bei Erfolg den Bezeichner der neu erstellten Spalte erhält. Bei einem Fehler ist der Wert nicht definiert.
Return Value
Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehlern und Fehler behandeln von Parametern.
Rückgabecode |
Beschreibung |
---|---|
JET_errSuccess |
Der Vorgang erfolgreich war. |
JET_errFixedDDL |
Es wurde versucht, die Datendefinition einer festen DDL Tabelle ändern. Ein Beispiel für eine Tabelle mit festen DDL ist eine Vorlage-Tabelle. |
JET_errInvalidParameter |
In der API wurde ein ungültiger Parameter übergeben. Einige Beispiele für ungültige Parameter sind:
|
JET_errInTransaction |
Es wurde versucht, eine Spalte mit dem JET_bitColumnUnversioned-hinzuzufügen, aber die Sitzung ist in einer Transaktion. |
JET_errColumnDuplicate |
Eine Spalte ist bereits vorhanden. Es wurde versucht, eine Spalte ohne Versionsinformationen hinzuzufügen, und die Spalte bereits vorhanden ist. |
JET_errTableNotEmpty |
Die Tabelle enthält Daten. Eine Spalte hinterlegten Update kann nur eine leere Tabelle hinzugefügt werden. |
JET_errRecordTooBig |
Der Datensatz ist zu groß. Die Summe der CbMax -Parameter für die festen Spalten darf nicht mit einen bestimmten Wert überschreiten. |
JET_errTooManyColumns |
Es wurde versucht, um die Tabelle zu viele Spalten hinzuzufügen. Eine Tabelle kann nicht mehr als JET_ccolFixedMost festen Spalten, nicht mehr als JET_ccolVarMost variabler Länge Spalten und nicht mehr als JET_ccolTaggedMost Spalten markiert haben. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzuzufügen. Es sollte nicht mehr als eine Autoincrement-Spalte und nicht mehr als eine Version Spalte pro Tabelle. |
JET_errCallbackNotResolved |
Die Callback-Funktion konnte nicht aufgelöst werden. Die DLL kann nicht gefunden oder die Funktion in der DLL möglicherweise nicht gefunden. Im Ereignisprotokoll wird weitere Details bereitstellen, wenn der ausreichenden Protokollierung aktiviert ist. |
JET_wrnColumnMaxTruncated |
Gibt an, dass die maximale Länge einer festen oder Variablen Spalte (CbMax) größer als JET_cbColumnMost wurde eine Warnmeldung angezeigt. Diese Beschränkung gilt nicht für Werte vom Typ Long (die JET_coltypLongBinary und JET_coltypLongTextist). |
JET_errInvalidName |
Ein ungültiger Name wurde als SzColumnNameübergeben. Weitere Informationen zu den Einschränkungen finden Sie unter die Kriterien für SzColumnName. |
JET_errInvalidColumnType |
Das Feld Coltyp wurde nicht auf einen gültigen Spaltentyp festgelegt. |
JET_errInvalidCodePage |
Der cp -Parameter der Struktur JET_COLUMNDEF wurde nicht auf eine gültige Codepage festgelegt. Die einzige gültige Werte für Textspalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert (Englisch, 1252) verwendet. |
JET_errTaggedNotNULL |
JET_bitColumnNotNULL kann nicht verwendet werden mit markiert, Long-Wert oder SLV Spalten. |
JET_errInvalidgrbit |
Es wurde eine ungültige Kombination von Grbits angegeben. Einige Gründe für diesen Fehler sind:
|
JET_errMultiValuedColumnMustBeTagged |
Eine mehrwertige Spalte (JET_bitColumnMultiValued) kann nur für eine bereichsspezifische oder Long-Wert (JET_coltypLongBinary oder JET_coltypLongText) Spalte verwendet werden. |
JET_errCannotBeTagged |
Es wurde versucht, eine markierte Spalte verwenden, wenn die Spalte nicht gekennzeichnet werden kann. Einige Einschränkungen für das markierte Spalten verhindert werden:
|
JET_errExclusiveTableLockRequired |
Eine exklusive Sperre für die Tabelle wurde für diesen Vorgang erforderlich. |
JET_wrnColumnMaxTruncated |
Gibt an, dass die maximale Länge einer festen oder Variablen Spalte (CbMax) größer als JET_cbColumnMost wurde eine Warnmeldung angezeigt. Diese Beschränkung gilt nicht für Werte vom Typ Long (die JET_coltypLongBinary und JET_coltypLongTextist). |
Voraussetzungen
-Client, |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server benötigt. |
Kopfzeile |
In Esent.h deklariert. |
Library |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert "ESENT.dll". |
Unicode |
Implementiert als JetAddColumnW (Unicode) und JetAddColumnA (ANSI). |
Siehe auch
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2