Share via


JetUpdate2-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetUpdate2-Funktion

Die JetUpdate2 -Funktion führt einen Aktualisierungsvorgang einschließlich Einfügen einer neuen Zeile in eine Tabelle oder eine vorhandene Zeile aktualisiert. Diese Funktion enthält eine Liste der JET_errInvalidGrbit -Optionen, die beim Durchführen einer Aktualisierung festgelegt werden können. Löschen einer Tabellenzeile erfolgt durch Aufrufen von JetDelete.

Windows Server 2003: JetUpdate2 wurde in Windows Server 2003 eingeführt.

JetUpdate2 ist der letzte Schritt bei der Ausführung einer INSERT- oder Update. Das Update wird gestartet, indem Sie JetPrepareUpdate aufrufen und dann durch Aufrufen JetSetColumn oder JetSetColumns mindestens einmal zum Festlegen des Zustands der Datensatz. Schließlich wird JetUpdate2 aufgerufen, um den Aktualisierungsvorgang abzuschließen. Indizes werden nur von JetUpdate oder JetUpdate2und nicht während der JetSetColumn oder JetSetColumnsaktualisiert.

JET_ERR JET_API JetUpdate2(
  __in          JET_SESID sesid,
  __in          JET_TABLEID tableid,
  __out_opt     void* pvBookmark,
  __in          unsigned long cbBookmark,
  __out_opt     unsigned long* pcbActual,
  __in            const JET_GRBIT grbit
);

Parameter

sesid

Die Sitzung für diesen Aufruf verwenden.

Tabellen-ID

Der Cursor für diesen Aufruf verwenden.

pvBookmark

Zeiger auf einen zurückgegebenen Lesezeichen für eine eingefügte Zeile.

cbBookmark

Die Größe des Puffers, auf die PvBookmark.

pcbActual

Die zurückgegebene Größe des Lesezeichens für die eingefügte Zeile in PvBookmarkzurückgegeben.

JET_errInvalidGrbit

Eine Gruppe von Bits, die Optionen für diesen Aufruf enthalten die 0 (null) oder mehr der folgenden enthalten.

Wert

Bedeutung

JET_bitUpdateCheckESE97Compatibility

Dieses Flag veranlasst die Aktualisierung einen Fehler zurück, wenn das Update nicht in der Windows 2000-Version von ESE, hätte die maximale weniger mehrwertige Spalte Instanzen in jedem Datensatz als in späteren Versionen von ESE erzwungen. Dies ist nur für Anwendungen, die zum Replizieren von Daten zwischen Anwendungen auf Windows 2000 und unter Windows Server 2003 oder höheren Versionen von ESE gehosteten Anwendungen wünschen. Es sollte nicht für die meisten Anwendungen erforderlich sein.

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_errBufferTooSmall

Der angegebene Puffer für die Textmarke ein Datensatz ist nicht ausreichend groß genug ist, um das Lesezeichen des Datensatzes zu speichern.

JET_errClientRequestToStopJetService

Es ist nicht möglich, um den Vorgang abzuschließen, da alle Aktivitäten in der Instanz dieser Sitzung aufgrund eines Aufrufs von JetStopServiceeingestellt hat.

JET_errDiskFull

Der Aktualisierungsvorgang erfordert, Datenbank-Datei Wachstum oder Log File Allocation, aber das Laufwerk, in dem die Serie Datenbank, Datei oder Protokolldatei befindet, ist voll. Auch die Datenbankdatei auf einem Volume FAT32 formatiert ist und die Datenbankdatei ist bereits 4GBytes, die für FAT32 pro Datei.

JET_errInstanceUnavailable

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz ein schwerwiegender Fehler, der erfordert aufgetreten ist, 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äteren Versionen zurückgegeben werden.

JET_errInvalidParameter

Der angegebenen Prep -Parameter in der JetPrepareUpdate -Funktion ist kein gültiges Flag.

JET_errKeyDuplicate

Ein Indexschlüssel für diesen Datensatz ist ein Duplikat eines anderen Index-Schlüssels für einen anderen Datensatz bereits in der Tabelle und der Index lässt keine Duplikate zu.

JET_errKeyTruncated

Der eingefügte oder aktualisierte Datensatz verfügt über ein oder mehrere Indizes für die generierte Schlüssel die maximale zulässige Größe überschritten haben würde. Der Vorgang konnte daher wichtige Abschneiden zu verhindern.

JET_errMultiValuedIndexViolation

Der eingefügte oder aktualisierte Datensatz hat eine indizierte Spalte mit mehreren Werte mit zwei oder mehr Werte, die innerhalb der maximalen Länge Schlüsselgröße für den Index festlegen identisch sind. Daher ist der Datensatz zwei identische Einträge in den Index, der ungültig ist.

JET_errNotInitialized

Es ist nicht möglich, um den Vorgang abzuschließen, da die Instanz dieser Sitzung noch nicht initialisiert wurde.

JET_errNullInvalid

Eine oder mehrere Spalten der Datensatz eingefügt werden oder in den aktualisierten Zustand eines Datensatzes wird ersetzen ist NULL , der die definierte Einschränkung für diese Spalten.

JET_errNullKeyDisallowed

Einen oder mehrere Indizes sind definiert, nicht um einen NULL -Schlüssel und der eingefügte oder aktualisierte Zustand eines Datensatzes ersetzt diese definierten Einschränkung verletzt.

JET_errRecordPrimaryChanged

Ein Datensatz Ersetzungsvorgang hat der Primärschlüssel aktualisiert. Aktualisierungen an Primärschlüsselspalten müssen den vorhandenen Datensatz löschen und Einfügen eines neuen Datensatzes mit den gewünschten Daten erfolgen.

JET_errRestoreInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da ein Wiederherstellungsvorgang ausgeführt auf die Instanz der Sitzung zugeordnet wird.

JET_errSessionSharingViolation

Die gleiche Sitzung kann für mehrere Threads gleichzeitig verwendet werden.

Windows XP:  Dieser Fehler wird nur von Windows XP und späteren Versionen zurückgegeben werden.

JET_errTermInProgress

Es ist nicht möglich, um den Vorgang abzuschließen, da die Sitzung zugeordnete Instanz heruntergefahren wird.

JET_errUpdateNotPrepared

JetPrepareUpdate wurde mit JET_prepCancel aufgerufen, aber der Cursor wurde nicht in den Status ' vorbereitet '.

JET_errWriteConflict

Ein Datensatz Ersetzungsvorgang für den Schreibsperre nicht bereits zugeordnet wurde, kann ein Schreibkonflikt zum Zeitpunkt der Aktualisierung auftreten.

Bei Erfolg wird der open Update-Operation für den Cursor abgeschlossen. Wenn eine AUTOINCREMENT-Spalte für die Tabelle definiert ist, wird dieser Wert für die eingefügten Datensätze festgelegt. Wenn eine Spalte Version für die Tabelle definiert ist, ist der Wert initialisiert für neu eingefügte Datensätze oder erhöht, jedes Mal, wenn ein Datensatz ersetzt wird. Alle Indizes, einschließlich gruppierte und nicht gruppierte Indizes werden aktualisiert.

Bei einem Fehler werden keine Änderungen jeglicher Art an der Datenbank vorgenommen. Vor dem Einfügen und dem Ersetzen Rückruffunktionen möglicherweise aufgerufen wurde, aber nach Einfügen und ersetzen Rückrufe werden nicht haben aufgerufen, da diese eine Aktualisierung fehlschlagen verursachen können. Der Kopierpuffer Cursor bleibt im Zustand bereit, damit die Möglichkeit, die inkrementell behandeln Sie die Probleme, die Fehler verursacht haben, und wiederholen Sie den Update-Vorgang vorhanden ist.

Anmerkungen

Größenbeschränkungen für Datensatz werden durch JetUpdatevon JetSetColumnund im Allgemeinen nicht erzwungen. Die einzige Ausnahme ist, wenn das Kompatibilitätsflag des JET_bitUpdateCheckESE97Compatibility verwendet wird. In diesem Fall wird der gesamte Datensatz überprüft, da eine einzelne JetSetColumn Operation, die den Grenzwert überschritten durch einen nachfolgenden Aufruf von JetSetColumnausgeglichen werden kann.

Finden Sie im Abschnitt "Hinweise" in JetUpdate für Weitere Informationen.

Voraussetzungen

-Client,

Ist Windows Vista erforderlich.

Server

Erfordert WindowsServer 2008 oder WindowsServer 2003.

Kopfzeile

In Esent.h deklariert.

Library

Verwenden Sie ESENT.lib.

DLL

"ESENT.dll" erfordert.

Siehe auch

JET_ERR
JET_SESID
JET_TABLEID
JetDelete
JetPrepareUpdate
JetRegisterCallback
JetRetrieveColumn
JetRetrieveColumns
JetSetColumn
JetSetColumns