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