JetSetColumn-Funktion
Letzte Änderung: Freitag, 27. Februar 2015
Gilt für: Windows | Windows Server
JetSetColumn-Funktion
Die Funktion JetSetColumn ändert einen einspaltige Wert in einen geänderten Datensatz eingefügt werden soll oder den aktuellen Datensatz zu aktualisieren. Es kann einen vorhandenen Wert zu überschreiben, einen neuen Wert einer Sequenz von Werten in einer Spalte mit mehreren Werten hinzufügen, entfernen einen Wert aus einer Sequenz von Werten in einer Spalte mit mehreren Werten oder ganz oder teilweise einen long-Wert, eine Spalte vom Typ JET_coltypLongText oder JET_coltypLongBinaryzu aktualisieren.
JET_ERR JET_API JetSetColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_COLUMNID columnid,
__in_opt const void* pvData,
__in unsigned long cbData,
__in JET_GRBIT grbit,
__in_opt JET_SETINFO* psetinfo
);
Parameter
sesid
Die Sitzung für diesen Aufruf verwenden.
TableID
Der Mauszeiger für dieses Anrufs verwenden.
Spalten-ID
Die JET_COLUMNID der Spalte abgerufen werden sollen. Alternativ kann ein Spalten-ID -Wert von 0 (null) zugewiesen werden. Wenn für Spalten-ID 0 (null) angegeben wird, werden alle markierte Spalten wenige und mehrwertige Spalten als eine einzelne Spalte behandelt. Dies vereinfacht die Abrufen aller wenige Spalten, die in einem Datensatz vorhanden sind.
pvData
Input Puffer mit Daten für Spaltenwert verwendet.
cbData
Größe des Puffers input in Bytes.
JET_errInvalidGrbit
Eine Gruppe von Bits an, die die Optionen für dieses Anrufs zu verwendende enthalten NULL oder mehrere der folgenden Optionen:
Wert |
Bedeutung |
---|---|
JET_bitSetAppendLV |
Diese Option wird verwendet, um Daten an eine Spalte vom Typ JET_coltypLongText oder JET_coltypLongBinaryanzufügen. Dasselbe Verhalten kann durch Bestimmen der Größe der vorhandenen long-Wert und zum Angeben von IbLongValue in Psetinfoerreicht werden. Es ist jedoch einfacher, diese JET_errInvalidGrbit zu verwenden, da die Größe der vorhandenen Wert von Column wissen nicht erforderlich ist. |
JET_bitSetOverwriteLV |
Diese Option wird verwendet, den vorhandenen long-Wert mit den neu bereitgestellten Daten ersetzen. Wenn diese Option verwendet wird, ist es, als wäre der vorhandene long-Wert auf 0 (null) Länge vor dem Festlegen der neuen Daten festgelegt wurde. |
JET_bitSetRevertToDefaultValue |
Diese Option gilt nur für Spalten mit Tags, wenige oder mit mehreren Werten. Die Spalte, um den Standardspaltenwert für nachfolgende abrufen Spaltenoperationen zurückgegeben wird. Alle vorhandenen Spaltenwerte werden entfernt. |
JET_bitSetSeparateLV |
Diese Option wird verwendet, um einen long-Wert vom Typ JET_coltypLongText oder JET_coltypLongBinary, separat vom Rest der Daten gespeichert werden Spalten zu erzwingen. Dies tritt normalerweise auf, wenn die Größe des long-Wert verhindert, dass mit verbleibenden Datensatzdaten gespeichert werden. Diese Option kann jedoch verwendet werden, so erzwingen Sie den long-Wert separat gespeichert werden. Notiz, die lange vier Bytes in der Größe der kleinere Werte kann nicht erzwungen werden, vollständig getrennt sein. In solchen Fällen wird die Option ignoriert. |
JET_bitSetSizeLV |
Diese Option wird verwendet, um interpretieren den Puffer als eine ganze Zahl von Bytes, die als die Länge des beschrieben, die durch die angegebenen Spalten-ID der long-Wert festgelegt, und wenn bereitgestellt, die Sequenznummer in Psetinfo-ItagSequence >. Wenn die angegebenen größer als der vorhandenen Spaltenwert ist, wird die Spalte mit Nullen erweitert. Wenn die Größe der vorhandenen Wert von Column kleiner ist, und klicken Sie dann der Wert abgeschnitten wird. |
JET_bitSetUniqueMultiValues |
Diese Option wird verwendet, um zu erzwingen, dass alle Werte, die in einer Spalte mit mehreren Werten unterscheiden. Diese Option vergleicht die Quelldaten Spalte, ohne dass andere Transformationen, auf anderen vorhandenen Spaltenwerte und ein Fehler wird zurückgegeben, wenn ein Duplikat gefunden wird. Wenn diese Option angegeben ist, kann nicht JET_bitSetAppendLV, JET_bitSetOverwriteLV und JET_bitSetSizeLV ebenfalls angegeben. |
JET_bitSetUniqueNormalizedMultiValues |
Diese Option wird verwendet, um zu erzwingen, dass alle Werte, die in einer Spalte mit mehreren Werten unterscheiden. Diese Option vergleicht die wichtigsten normalisierte Transformation von Spaltendaten, andere entsprechend transformierte vorhandenen Werte und ein Fehler wird zurückgegeben, wenn ein Duplikat gefunden wird. Wenn diese Option angegeben ist, kann nicht JET_bitSetAppendLV, JET_bitSetOverwriteLV und JET_bitSetSizeLV ebenfalls angegeben. |
JET_bitSetZeroLength |
Diese Option wird verwendet, um einen Wert für die Länge 0 (null) festgelegt. Normalerweise ist ein Spaltenwert auf NULL festgelegt, indem Sie eine CbMax 0 (null) übergeben. Für einige Typen, wie JET_coltypText, ein Spaltenwert kann jedoch 0 (null) Länge anstelle von NULL, und diese Option wird verwendet, um zwischen NULL und den Wert 0 (null) Länge unterscheiden. Hinweis Im Allgemeinen ist die Spalte eine Spalte mit fester Länge, dieses Bit wird ignoriert, und die Spalte auf NULLfestgelegt ist. Wenn die Spalte eine feste Länge markierte Spalte ist, wird die Länge der Spalte jedoch auf 0 festgelegt. Wenn die markierte Spalte mit fester Länge auf Länge 0 festgelegt ist, Versuche zum Abrufen der Spalte mit JetRetrieveColumn oder JetRetrieveColumns ist erfolgreich, aber die tatsächliche Länge, die im Parameter CbActual zurückgegeben wird, ist 0. |
JET_bitSetIntrinsicLV |
Diese Option wird den gesamten long-Wert im Datensatz zu speichern. |
JET_bitSetCompressed |
Diese Option wird verwendet, so Datenkomprimierung versuchen, wenn Sie die Daten speichern. Windows 7: JET_bitSetCompressed ist in Windows 7 eingeführt. |
JET_bitSetUncompressed |
Diese Option wird verwendet, Komprimierung nicht versucht, beim Speichern von Daten. Windows 7: JET_bitSetUnCompressed ist in Windows 7 eingeführt. |
psetinfo
Zeiger auf optionale Parameter, die für diese Funktion mithilfe der JET_SETINFO -Struktur festgelegt werden können.
Wenn Psetinfo als NULL angegeben ist verhält sich die Funktion so, als ob ein ItagSequence 1 und ein IbLongValue von 0 (null) angegeben wurden. Daraufhin wird Spalte gesetzt des ersten Werts einer Spalte mit mehreren Werten und zum Festlegen der umfangreichen Daten beginnend bei offset 0 (null).
Die folgenden Optionen können für diesen Parameter festgelegt werden:
Wert |
Bedeutung |
---|---|
ibLongValue |
Binäre Offset in einer Spalte mit langen-Wert, in dem Set-Daten beginnen soll. |
itagSequence |
Sequenznummer des Werts gewünschte mehrwertige Spalte festgelegt. Wenn ItagSequence auf 0 (null) festgelegt ist, muss der angegebene Wert dann Ende der Sequenz von Werten mit mehreren Werten angefügt werden. Wenn die Sequenznummer bereitgestellt größer als der letzte vorhandenen mehrwertige Wert ist, wird der angegebene Wert dann erneut an das Ende der Sequenz von Werten angefügt werden. Wenn die Sequenznummer auf einen vorhandenen Wert entspricht, und klicken Sie dann diesen Wert mit dem angegebenen Wert ersetzt wird. |
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 wurde erfolgreich abgeschlossen. |
JET_errBadColumnId |
Die Spalten-ID angegeben wird, außerhalb der zulässigen Grenzen einer Spalte-ID. |
JET_errClientRequestToStopJetService |
Es ist nicht möglich, den Vorgang abzuschließen, da alle Aktivitäten auf die Instanz der Sitzung zugeordnet aufgrund eines Aufrufs von JetStopServicebehoben ist. |
JET_errColumnNotFound |
Die Spalte, die durch die angegebenen Spalten-ID beschrieben ist in der Tabelle nicht vorhanden. |
JET_errColumnNotUpdatable |
Unzulässige versucht, einen long-Wert während einer Kopie löschen ursprünglichen Update Einfügevorgangs zu aktualisieren. |
JET_errColumnTooBig |
Die angegebene Spalte Wertdaten in den Puffer übersteigt die Größenbeschränkung für eine Spalte mit fester Länge natürlichen oder konfigurierten für feste Länge Text oder binär Spalten. Dieser Fehler wird auch zurückgegeben, wenn mehr als 1024 Bytes Daten für eine lange Spalte übergibt und Festlegen der JET_bitSetIntrinsicLV kennzeichnen. |
JET_errInstanceUnavailable |
Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet ein schwerwiegender Fehler, der erforderlich sind aufgetreten wurde, dass der Zugriff auf alle Daten gesperrt werden, um die Integrität der Daten zu schützen. Windows XP: Dieser Fehler wird nur von Windows XP und spätere Versionen zurückgegeben werden. |
JET_errInvalidBufferSize |
Die angegebene Spaltengröße stimmt nicht überein, was für den Datentyp feste Länge natürliche ist. |
JET_errInvalidColumnType |
Unzulässige es wurde versucht, einer Spalte automatische Inkrementierung aktualisiert werden, entweder beim Einfügen oder Aktualisierungsvorgang oder So aktualisieren Sie eine Spalte Version während eines Ersetzungsvorgangs. |
JET_errInvalidgrbit |
Die Optionen, die bereitgestellt sind unbekannt oder eine ungültige Kombination von bekannten Bit-Einstellungen. |
JET_errInvalidParameter |
Der angegebene Psetinfo -> CbStruct ist es sich nicht um eine gültige Größe für die JET_SETINFO -Struktur. |
JET_errMultiValuedDuplicate |
Die Spalte Operation hat versucht, einen doppelten Wert erstellen und JET_bitSetUniqueMultiValues oder JET_bitSetUniqueNormalizedMultiValues angegeben. |
JET_errNotInitialized |
Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet wurde noch nicht initialisiert. |
JET_errNotInTransaction |
Unzulässige versucht, einen Spalte mit langen Wert aktualisieren, wenn die aufrufende Sitzung nicht in einer Transaktion war. |
JET_errNullInvalid |
Satz ein nicht -NULL -Spalte auf null festgelegtwurde ein Ungültiger Versuch gemacht. |
JET_errColumnIllegalNull |
Identisch mit JET_errNullInvalid. |
JET_errRecordTooBig |
Der Wert von Column konnte nicht auf den Wert im Puffer festgelegt werden, da er den Datensatz auf die Seite überschreiten geführt hätte Größe Uploaddatei beziehen. Spalten vom Typ JET_coltypLongText oder JET_coltypLongBinary können getrennt von den verbleibenden Daten gespeichert werden. Allerdings anderen Spalten müssen mit dem Datensatz gespeichert werden und können dazu führen, dass die Datensatz Größenbeschränkung überschritten werden. Auch lange Spalten erfordern 5-Byte Speicherplatz innerhalb des Datensatzes als eine Verknüpfung, und dies zu zu JET_errRecordTooBig zurückgegeben werden führen kann. |
JET_errRestoreInProgress |
Es ist nicht möglich, den Vorgang abzuschließen, da ein Restore-Vorgang in Arbeit auf die Instanz der Sitzung zugeordnet ist. |
JET_errSessionSharingViolation |
Die gleiche Sitzung kann nicht für mehrere Threads gleichzeitig verwendet werden. Windows XP: Dieser Fehler wird nur von Windows XP und spätere Versionen zurückgegeben werden. |
JET_errTermInProgress |
Es ist nicht möglich, den Vorgang abzuschließen, da die Instanz der Sitzung zugeordnet heruntergefahren wird. |
JET_errUpdateNotPrepared |
Der Mauszeiger wird derzeit nicht beim Einfügen eines neuen Datensatzes oder Aktualisieren eines vorhandenen Datensatzes. |
JET_errVersionStoreOutOfMemory |
Dieser Fehler tritt auf, wenn die konfigurierte Größe des Versionsspeichers nicht ausreichend, um alle ausstehenden Updates enthalten ist. |
JET_wrnColumnMaxTruncated |
Der Wert von Column im Puffer die konfigurierte maximale Länge einer Spalte mit variabler Länge überschritten und wurde abgeschnitten. |
Klicken Sie auf Erfolg wird der gewünschte Teil eines Werts für die angegebene Spalte mit Daten aus dem Puffer kopiert festgelegt. Das Dataset wurde möglicherweise abgeschnitten, wenn er die maximale Länge für eine Spalte mit variabler Länge angegeben überschritten hat.
Bei einem Fehler die Cursorposition bleibt unverändert und keine Spaltendaten Wert werden in den Kopierpuffer aktualisiert.
Anmerkungen
Festlegen von langen Werten, Werte für Spalten JET_coltypLongBinary vom Typ JET_coltypLongText oder JET_coltypLongBinary, sollte nur, wenn die aufrufende Sitzung in einer Transaktion ist durchgeführt werden. Wenn die aufrufende Sitzung nicht in einer Transaktion ist, möglicherweise Änderungen lange Werte separat gespeichert sind ein Commit vollständig, auch wenn der Aktualisierungsvorgang später abgebrochen wird. Wenn die aufrufende Sitzung in einer Transaktion ist, können dann die Auswirkungen des Updates vollständig rückgängig gemacht werden durch das Update abbrechen und die Sitzungstransaktion rückgängig gemacht.
Die Aktualisierung von Indizes werden als Ergebnis einer JetSetColumn Vorgänge nicht ausgeführt. Stattdessen werden die Indizes aktualisiert, nachdem alle Spaltenänderungen abgeschlossen sind, und JetUpdate wird aufgerufen. Dies ermöglicht die am effizientesten Aktualisierung von Indizes, wenn Indizes mehr als eine Spalte, die zu ändernden umfassen.
Ein Datensatz ist in Größe basierend auf der Seite Datenbankgröße begrenzt. Keine langen Werte im Datensatz größer als fünf Bytes werden getrennt von den Datensatz gespeichert werden die Daten im Datensatz seinen als Ergebnis eines Vorgangs JetSetColumn -Grenzwert überschreitet. Der Fehler, die, den JET_errRecordTooBig nur zurückgegeben wird, nachdem alle ausgesondert aufzeichnen Spaltendaten wurde gespeichert separat aus dem und der Datensatz, weiterhin die maximale Größe überschreitet.
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". |
Siehe auch
JET_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_SETINFO
JetRetrieveColumn
JetSetColumns