JetAddColumn-Funktion
Gilt für: Windows | Windows Server
JetAddColumn-Funktion
Die JetAddColumn-Funktion fügt einer vorhandenen Tabelle in einer ESE-Datenbank eine neue Spalte hinzu.
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 Datenbanksitzungskontext, der für den API-Aufruf verwendet werden soll.
tableid
Die Tabelle, der die Spalte hinzugefügt werden soll.
szColumnName
Der Name der hinzuzufügenden Spalte. Der Name muss die folgenden Kriterien erfüllen:
Es muss weniger als JET_cbNameMost Zeichen lang sein, ohne dass der abschließende NULL-Wert enthalten ist.
Sie darf nur Zeichen aus den folgenden Sätzen enthalten: 0 bis 9, A bis Z, a bis z und alle anderen Interpunktionszeichen mit Ausnahme von Ausrufezeichen (!), Komma (,), öffnender Klammer ([) und schließender Klammer (]), d. h. ASCII-Zeichen 0x20, 0x22 bis 0x2d, 0x2f über 0x5a, 0x5c und 0x5d über 0x7f.
Es kann nicht mit einem Leerzeichen beginnen.
Sie muss mindestens ein Zeichen ohne 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 vorhanden ist, legen Sie pvDefault auf NULL und cbDefault auf Null fest. Standardwerte dürfen 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, wird er automatisch abgeschnitten.
Wenn für grbit JET_bitColumnUserDefinedDefault festgelegt ist, wird pvDefault als Zeiger auf eine JET_USERDEFINEDDEFAULT-Struktur interpretiert.
cbDefault
Die Größe des in pvDefault angegebenen Puffers in Bytes.
pcolumnid
Ein Zeiger auf eine JET_COLUMNID-Struktur , die bei Erfolg den Bezeichner der neu erstellten Spalte empfängt. Bei einem Fehler ist der Wert nicht definiert.
Rückgabewert
Diese Funktion gibt den Datentyp JET_ERR 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 durchgeführt. |
JET_errFixedDDL |
Es wurde versucht, die Datendefinition einer festen DDL-Tabelle zu ändern. Ein Beispiel für eine Tabelle mit fester DDL ist eine Vorlagentabelle. |
JET_errInvalidParameter |
Ein ungültiger Parameter wurde an die API übergeben. Einige Beispiele für ungültige Parameter sind:
|
JET_errInTransaction |
Es wurde versucht, eine Spalte mit festgelegtem JET_bitColumnUnversioned Bit hinzuzufügen, aber die Sitzung befindet sich derzeit in einer Transaktion. |
JET_errColumnDuplicate |
Eine Spalte ist bereits vorhanden. Es wurde versucht, eine Spalte ohne Versionsinformationen hinzuzufügen, und diese Spalte ist bereits vorhanden. |
JET_errTableNotEmpty |
Die Tabelle enthält Daten. Eine Escrow Update-Spalte kann nur einer leeren Tabelle hinzugefügt werden. |
JET_errRecordTooBig |
Der Datensatz ist zu groß. Die Summe des cbMax-Parameters für die festen Spalten darf einen bestimmten Wert nicht überschreiten. |
JET_errTooManyColumns |
Es wurde versucht, der Tabelle zu viele Spalten hinzuzufügen. Eine Tabelle darf nicht mehr als JET_ccolFixedMost festen Spalten, nicht mehr als JET_ccolVarMost Spalten mit variabler Länge und nicht mehr als JET_ccolTaggedMost markierten Spalten enthalten. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzuzufügen. Es sollte nicht mehr als eine Autoinkrementspalte und nicht mehr als eine Versionsspalte pro Tabelle vorhanden sein. |
JET_errCallbackNotResolved |
Die Rückruffunktion konnte nicht aufgelöst werden. Die DLL wurde möglicherweise nicht gefunden, oder die Funktion in der DLL wurde möglicherweise nicht gefunden. Das Ereignisprotokoll enthält weitere Details, wenn eine ausreichende Protokollierung aktiviert ist. |
JET_wrnColumnMaxTruncated |
Eine Warnung, die angibt, dass die maximale Länge (cbMax) einer festen oder variablen Spalte größer als JET_cbColumnMost war. Dieser Grenzwert gilt nicht für lange Werte (also JET_coltypLongBinary und JET_coltypLongText). |
JET_errInvalidName |
Ein ungültiger Name wurde als szColumnName übergeben. Weitere Informationen zu den Einschränkungen finden Sie in den Kriterien für szColumnName. |
JET_errInvalidColumnType |
Das Coltypfeld wurde nicht auf einen gültigen Spaltentyp festgelegt. |
JET_errInvalidCodePage |
Der cp-Parameter der JET_COLUMNDEF-Struktur wurde nicht auf eine gültige Codepage festgelegt. Die einzigen gültigen Werte für Textspalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert verwendet wird (Englisch, 1252). |
JET_errTaggedNotNULL |
JET_bitColumnNotNULL können nicht mit markierten Spalten, langen Werten oder SLV-Spalten verwendet werden. |
JET_errInvalidgrbit |
Es wurde eine ungültige Kombination von Grbits angegeben. Einige der Gründe für diesen Fehler sind:
|
JET_errMultiValuedColumnMustBeTagged |
Eine mehrwertige Spalte (JET_bitColumnMultiValued) kann nur für eine getaggte Oder Long Value -Spalte (JET_coltypLongBinary oder JET_coltypLongText) verwendet werden. |
JET_errCannotBeTagged |
Es wurde versucht, eine markierte Spalte zu verwenden, wenn die Spalte möglicherweise nicht markiert ist. Einige der Einschränkungen für die Aufhebung der Zuordnung markierter Spalten sind:
|
JET_errExclusiveTableLockRequired |
Für diesen Vorgang war eine exklusive Sperre für die Tabelle erforderlich. |
JET_wrnColumnMaxTruncated |
Eine Warnung, die angibt, dass die maximale Länge (cbMax) einer festen oder variablen Spalte größer als JET_cbColumnMost war. Dieses Limit gilt nicht für Lange Werte ( JET_coltypLongBinary undJET_coltypLongText). |
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 JetAddColumnW (Unicode) und JetAddColumnA (ANSI). |
Weitere Informationen
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2