JetGotoSecondaryIndexBookmark-Funktion

Gilt für: Windows | Windows Server

JetGotoSecondaryIndexBookmark-Funktion

Die JetGotoSecondaryIndexBookmark-Funktion positioniert einen Cursor an einen Indexeintrag, der dem angegebenen sekundären Indexlesezeichen zugeordnet ist. Das Lesezeichen für den sekundären Index muss mit demselben Index für dieselbe Tabelle verwendet werden, aus der es ursprünglich abgerufen wurde. Das Lesezeichen für den sekundären Index für einen Indexeintrag kann mithilfe von JetGotoSecondaryIndexBookmark abgerufen werden.

Windows XP:JetGotoSecondaryIndexBookmark wird in Windows XP eingeführt.

    JET_ERR JET_API JetGotoSecondaryIndexBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          void* pvSecondaryKey,
      __in          unsigned long cbSecondaryKey,
      __in_opt      void* pvPrimaryBookmark,
      __in          unsigned long cbPrimaryBookmark,
      __in          const JET_GRBIT grbit
    );

Parameter

sesid

Die Sitzung, die für diesen Aufruf verwendet werden soll.

tableid

Der Cursor, der für diesen Aufruf verwendet werden soll.

pvSecondaryKey

Der Puffer, der den sekundären Schlüssel enthält, der zum Positionieren des Cursors verwendet werden soll.

cbSecondaryKey

Die Größe des sekundären Schlüssels im Puffer.

pvPrimaryBookmark

Der Puffer, der das Primärschlüssellesezeichen enthält, das zum Positionieren des Cursors verwendet werden soll.

cbPrimaryBookmark

Die Größe des Primärschlüssellesezeichens im Puffer.

grbit

Eine Gruppe von Bits, die null oder mehr der folgenden Optionen angibt.

Wert

Bedeutung

JET_bitBookmarkPermitVirtualCurrency

Für den Fall, dass der Indexeintrag nicht mehr gefunden werden kann, wird der Cursor an der Stelle positioniert, an der dieser Indexeintrag zuvor gefunden wurde. Der Vorgang schlägt weiterhin mit JET_errRecordDeleted fehl. es ist jedoch möglich, relativ zum jetzt fehlenden Indexeintrag zum nächsten oder vorherigen Indexeintrag zu wechseln.

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 erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

Der Vorgang kann nicht abgeschlossen werden, da alle Aktivitäten auf der instance, die der Sitzung zugeordnet ist, aufgrund eines Aufrufs von JetStopService beendet wurden.

JET_errInstanceUnavailable

Der Vorgang kann nicht abgeschlossen werden, weil für die instance, die der Sitzung zugeordnet ist, ein schwerwiegender Fehler aufgetreten ist, der erfordert, dass der Zugriff auf alle Daten widerrufen wird, um die Integrität dieser Daten zu schützen.

Windows XP: Dieser Rückgabewert wird in Windows XP eingeführt.

JET_errInvalidBookmark

Das bereitgestellte lesezeichen für den sekundären Index war ungültig. Dieser Fehler ist möglicherweise aufgetreten, weil der sekundäre Schlüssel null oder der Zeiger des Sekundärschlüsselpuffers NULL ist. Dieser Fehler tritt auf, weil

  • Der aktuelle sekundäre Index verfügt nicht über eine Eindeutigkeitseinschränkung, und die Größe des bereitgestellten Lesezeichens ist null.

  • Der Lesezeichenpufferzeiger ist NULL.

JET_errNoCurrentIndex

Der Cursor befindet sich derzeit nicht in einem sekundären Index. Es ist nicht sinnvoll, zu einem sekundären Indexlesezeichen zu wechseln, wenn der Cursor derzeit keinen sekundären Index verwendet. JetGotoBookmark sollte verwendet werden, wenn sich der Cursor nicht auf einem sekundären Index befindet.

JET_errNotInitialized

Der Vorgang kann nicht abgeschlossen werden, da die der Sitzung zugeordnete instance noch nicht initialisiert wurde.

JET_errRecordDeleted

Der Indexeintrag, der dem Lesezeichen für den sekundären Index zugeordnet ist, konnte nicht gefunden werden.

JET_errRestoreInProgress

Der Vorgang kann nicht abgeschlossen werden, da ein Wiederherstellungsvorgang für die instance ausgeführt wird, die der Sitzung zugeordnet ist.

JET_errSessionSharingViolation

Dieselbe Sitzung kann nicht für mehrere Threads gleichzeitig verwendet werden.

Windows XP: Dieser Rückgabewert wird in Windows XP eingeführt.

JET_errTermInProgress

Der Vorgang kann nicht abgeschlossen werden, da die der Sitzung zugeordnete instance heruntergefahren wird.

Wenn diese Funktion erfolgreich ist, wird der Cursor an einem Indexeintrag positioniert, der dem angegebenen sekundären Indexlesezeichen zugeordnet ist. Wenn ein Datensatz für das Update vorbereitet wurde, wird dieses Update abgebrochen. Wenn ein Indexbereich aktiv ist, wird dieser Indexbereich abgebrochen. Wenn ein Suchschlüssel für den Cursor erstellt wurde, wird dieser Suchschlüssel gelöscht. Es wird keine Änderung des Datenbankzustands vorgenommen.

Wenn diese Funktion fehlschlägt, bleibt die Position des Cursors unverändert, es sei denn, es wird JET_errRecordDeleted zurückgegeben und JET_bitBookmarkPermitVirtualCurrency angegeben. In diesem Fall wird der Cursor an der Stelle positioniert, an der sich der Indexeintrag befindet, der dem angegebenen sekundären Indexlesezeichen zugeordnet ist. Der Cursor kann relativ zu dieser Position verschoben werden, befindet sich aber immer noch nicht auf einem gültigen Indexeintrag.

Wenn ein Datensatz für das Update vorbereitet wurde, wird dieses Update abgebrochen. Wenn ein Indexbereich aktiv ist, wird dieser Indexbereich abgebrochen. Wenn ein Suchschlüssel für den Cursor erstellt wurde, wird dieser Suchschlüssel gelöscht. In jedem Fall erfolgt keine Änderung des Datenbankzustands.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista oder Windows XP.

Server

Erfordert Windows Server 2008 oder Windows Server 2003.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Weitere Informationen

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetGetSecondaryIndexBookmark
JetGotoBookmark
JetStopService