JetGotoSecondaryIndexBookmark-Funktion

Gilt für: Windows | Windows Server

JetGotoSecondaryIndexBookmark-Funktion

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

**Windows XP:**JetGotoSecondaryIndexBookmark wurde 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

Wenn 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 Indexeintrag, der jetzt fehlt, zum nächsten oder vorherigen Indexeintrag zu wechseln.

Rückgabewert

Diese Funktion gibt den JET_ERR Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

Der Vorgang kann nicht abgeschlossen werden, da die Instanz, die der Sitzung zugeordnet ist, einen schwerwiegenden Fehler festgestellt hat, 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 sekundäre Indexlesezeichen, das bereitgestellt wurde, war ungültig. Dieser Fehler ist möglicherweise aufgetreten, weil der sekundäre Schlüssel 0 (null) oder der sekundäre Schlüsselpufferzeiger NULList. 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 0 (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 in einem sekundären Index befindet.

JET_errNotInitialized

Der Vorgang kann nicht abgeschlossen werden, da die Instanz, die der Sitzung zugeordnet ist, noch nicht initialisiert wurde.

JET_errRecordDeleted

Der Indexeintrag, der dem sekundären Indexlesezeichen zugeordnet ist, wurde nicht gefunden.

JET_errRestoreInProgress

Der Vorgang kann nicht abgeschlossen werden, da ein Wiederherstellungsvorgang für die Instanz 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 instanz, die der Sitzung zugeordnet ist, heruntergefahren wird.

Wenn diese Funktion erfolgreich ausgeführt wird, 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 in Kraft ist, wird dieser Indexbereich abgebrochen. Wenn ein Suchschlüssel für den Cursor erstellt wurde, der verwendet werden soll, wird dieser Suchschlüssel gelöscht. Es wird keine Änderung am Datenbankzustand vorgenommen.

Wenn diese Funktion fehlschlägt, bleibt die Position des Cursors unverändert, es sei denn, JET_errRecordDeleted wird 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 jedoch immer noch nicht in einem gültigen Indexeintrag.

Wenn ein Datensatz für das Update vorbereitet wurde, wird dieses Update abgebrochen. Wenn ein Indexbereich in Kraft ist, wird dieser Indexbereich abgebrochen. Wenn ein Suchschlüssel für den Cursor erstellt wurde, der verwendet werden soll, 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.

Header

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