JetDelete-Funktion

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Windows | Windows Server

JetDelete-Funktion

Die Funktion JetDelete löscht den aktuellen Datensatz in einer Datenbanktabelle.

JET_ERR JET_API JetDelete(
  __in          JET_SESID sesid,
  __in          JET_TABLEID tableid
);

Parameter

sesid

Im Kontext der Datenbank-Sitzung, die verwendet werden, für die API-Aufruf.

TableID

Der Cursor auf einer Datenbanktabelle. Die aktuelle Zeile wird gelöscht.

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_errCallbackFailed

Die Callback-Funktion konnte nicht auf irgendeine Weise. Beispielsweise werden Verstöße gegen den in Rückruffunktionen abgefangen und in JET_errCallbackFailed übersetzt. Dieser Fehler wird nur von Windows XP und höher zurückgegeben werden.

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_errIllegalOperation

Löschen unterstützt von Tableid angegebenen Cursor nicht. Finden Sie im Abschnitt "Hinweise".

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. Dieser Fehler wird nur von Windows XP und spätere Versionen zurückgegeben werden.

JET_errNoCurrentRecord

Der Cursor durch Tableid angegeben ist nicht für einen Datensatz.

JET_errNotInitialized

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

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_errPermissionDenied

Die Datenbank-Engine hat keinen über ausreichende Berechtigungen für den Datensatz löschen. Dies kann vorkommen, wenn die Datenbankdatei mit schreibgeschützten Zugriff geöffnet wurde.

JET_errRollbackError

Ein Update-Puffer (siehe JetPrepareUpdate) vorhanden ist, aber nicht alle Änderungen an Spalten vom Typ JET_coltypLongText und/oder Spalten des Typs, den JET_coltypLongBinary rückgängig gemacht werden kann.

JET_errSessionSharingViolation

Es ist nicht zulässig, die gleiche Sitzung von mehr als einem Thread gleichzeitig verwenden. 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_errTransReadOnly

Die Transaktion ist eine Transaktion schreibgeschützt, und löscht nicht unterstützt.

JET_errVersionStoreOutOfMemory

Der Vorgang fehlgeschlagen ist nicht genügend Speicher zum transaktionale Informationen zum Update beibehalten werden.

JET_errWriteConflict

Eine andere Sitzung hat zuvor den Eintrag für den Update gesperrt. Die Aktualisierung von dieser Sitzung versucht, schlägt fehl.

Bei Erfolg bleibt die Währung direkt vor der nächsten Datensatz. Wenn gelöschte Datensatz das letzte in der Tabelle wurde, bleibt die Währung am Ende der Tabelle (d. h., nach dem letzten neuen Datensatz). Wenn der gelöschte Datensatz den einzigen Datensatz in der Tabelle wurde, wird die Währung an den Anfang festgelegt.

Die entsprechenden Indizes werden automatisch aktualisiert.

Wenn ein Update (mit JetPrepareUpdate) vorbereitet wurde, wird es abgebrochen werden. Der Update-Puffer werden zurückgesetzt.

Bei einem Fehler wird die Währung nicht geändert. Wenn ein Update vorbereitet wurde (siehe JetPrepareUpdate), der Update-Puffer zurückgesetzt werden kann.

Anmerkungen

Nicht alle Tabellen unterstützen Löschen von Zeilen. Eine temporäre Tabelle unterstützt das Löschen von Zeilen normalerweise nicht. Löschen von Datensätzen kann auf temporäre Tabellen aus Gründen der viele aktiviert werden einige:

  • JET_bitTTUpdatable wurde während der Erstellung angegeben.

  • Große temporäre Tabellen unterstützt löschen, wenn sie mit JET_bitTTScrollable oder JET_bitTTIndexed erstellt wurden. Der Schwellenwert an dem eine temporäre Tabelle "Groß" wird ist derzeit 64 KB, aber es kann geändert werden in zukünftigen Versionen.

Windows XP und höher. Callback-Funktionen können von JetDelete, einschließlich JET_cbtypBeforeDelete und JET_cbtypAfterDelete aufgerufen werden.

Es ist wichtig zu verstehen, die Auswirkungen von eine große Anzahl von Aktualisierungsvorgänge innerhalb einer einzelnen Transaktion ausführen. Jedes Update auf die Datenbank muss von der Datenbank-Engine im Versionsspeicher nachverfolgt werden. Der Version Informationsspeicher enthält einen live Datensatz die verschiedenen Versionen von jeder Datensatz oder Index-Eintrag in der Datenbank, die alle aktiven Transaktionen sichtbar sind. Diese Versionen werden zur Unterstützung der Multi Versionsangabe nebenläufigkeitskontrolle in Verwendung durch das Datenbankmodul unterstützt Transaktionen mit Snapshot-Isolation verwendet. Nachdem die Datenbank-Engine, die zum Speichern von dieser Versionen verwendeten Ressourcen ausgeschöpft hat kann es nicht mehr weitere Änderungen akzeptieren Sie bis einige Transaktionen geschlossen haben, damit diese Ressourcen freigegeben werden können. Wenn das Modul in diesem Status ist, werden alle Updates JET_errVersionStoreOutOfMemory auftreten. Die Ressourcen zur Verfügung, mit dem Datenbankmodul zum Speichern von dieser Versionen können mit JetSetSystemParameterJET_paramMaxVerPages und JET_paramGlobalMinVerPagesgesteuert werden.

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_ERR
JET_SESID
JET_TABLEID
JetOpenTempTable
JetPrepareUpdate
Systemparameter