Freigeben über


JetSeek-Funktion

Gilt für: Windows | Windows Server

JetSeek-Funktion

Die JetSeek-Funktion positioniert einen Cursor effizient an einen Indexeintrag, der den Suchkriterien entspricht, die durch den Suchschlüssel in diesem Cursor und die angegebene Ungleichheit angegeben werden. Ein Suchschlüssel muss zuvor mit JetMakeKey erstellt worden sein.

    JET_ERR JET_API JetSeek(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          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.

grbit

Eine Gruppe von Bits, die die Optionen enthalten, die für diesen Aufruf verwendet werden sollen. Grbit muss ungleich null sein und einen oder mehrere der in der folgenden Tabelle aufgeführten Werte enthalten.

Wert

Bedeutung

JET_bitCheckUniqueness

Ein spezieller Fehlercode, JET_wrnUniqueKey, wird zurückgegeben, wenn kostengünstig ermittelt werden kann, dass genau ein Indexeintrag mit dem Suchschlüssel übereinstimmt.

Diese Option wird ignoriert, es sei denn, JET_bitSeekEQ wird ebenfalls angegeben.

Diese Option ist nur unter Windows Server 2003 und höheren Versionen verfügbar.

JET_bitSeekEQ

Der Cursor wird am Indexeintrag positioniert, der dem Anfang des Indexes am nächsten kommt, der genau mit dem Suchschlüssel übereinstimmt. Der Anfang des Indexes ist der Indexeintrag, der beim Wechsel zum ersten Datensatz in diesem Index gefunden wird. Der Anfang des Indexes entspricht nicht dem unteren Ende des Indexes, der sich je nach Sortierreihenfolge der Schlüsselspalten im Index ändern kann.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel zu verwenden, der mithilfe von JetMakeKey mithilfe einer Wildcard-Option erstellt wurde.

JET_bitSeekGE

Der Cursor wird am Indexeintrag positioniert, der dem Indexanfang am nächsten liegt, der größer oder gleich einem Indexeintrag ist, der genau den Suchkriterien entspricht. Der Anfang des Indexes ist der Indexeintrag, der beim Wechsel zum ersten Datensatz in diesem Index gefunden wird. Der Anfang des Indexes entspricht nicht dem unteren Ende des Indexes, der sich je nach Sortierreihenfolge der Schlüsselspalten im Index ändern kann.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel zu verwenden, der mithilfe von JetMakeKey mithilfe einer Wildcardoption erstellt wurde, die indexeinträge am nächsten am Ende des Indexes finden soll.

JET_bitSeekGT

Der Cursor wird am Indexeintrag positioniert, der dem Indexanfang am nächsten liegt, der größer als ein Indexeintrag ist, der genau den Suchkriterien entspricht. Der Anfang des Indexes ist der Indexeintrag, der beim Wechsel zum ersten Datensatz in diesem Index gefunden wird. Der Anfang des Indexes entspricht nicht dem unteren Ende des Indexes, der sich je nach Sortierreihenfolge der Schlüsselspalten im Index ändern kann.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel zu verwenden, der mithilfe von JetMakeKey mithilfe einer Wildcardoption erstellt wurde, um Indexeinträge zu finden, die dem Indexanfang am nächsten sind.

JET_bitSeekLE

Der Cursor wird am Indexeintrag positioniert, der dem Ende des Indexes am nächsten liegt, der kleiner oder gleich einem Indexeintrag ist, der genau den Suchkriterien entspricht. Das Ende des Indexes ist der Indexeintrag, der beim Wechsel zum letzten Datensatz in diesem Index gefunden wird. Das Ende des Indexes ist nicht dasselbe wie das high end des Indexes, was sich je nach Sortierreihenfolge der Schlüsselspalten im Index ändern kann.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel zu verwenden, der mithilfe von JetMakeKey mithilfe einer Wildcardoption erstellt wurde, um Indexeinträge zu finden, die dem Indexanfang am nächsten sind.

JET_bitSeekLT

Der Cursor wird am Indexeintrag positioniert, der dem Ende des Indexes am nächsten liegt, der kleiner als ein Indexeintrag ist, der genau den Suchkriterien entspricht. Das Ende des Indexes ist der Indexeintrag, der beim Wechsel zum letzten Datensatz in diesem Index gefunden wird. Das Ende des Indexes ist nicht dasselbe wie das high end des Indexes, was sich je nach Sortierreihenfolge der Schlüsselspalten im Index ändern kann.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel zu verwenden, der mithilfe von JetMakeKey mithilfe einer Wildcardoption erstellt wurde, die indexeinträge am nächsten am Ende des Indexes finden soll.

JET_bitSetIndexRange

Ein Indexbereich wird automatisch für alle Schlüssel eingerichtet, die genau mit dem Suchschlüssel übereinstimmen. Der resultierende Indexbereich ist identisch mit einem Indexbereich, der andernfalls durch einen Aufruf von JetSetIndexRange mit den Optionen JET_bitRangeInclusive und JET_bitRangeUpperLimit erstellt worden wäre. Weitere Informationen finden Sie unter JetSetIndexRange .

Dies ist eine praktische Methode zum Ermitteln aller Indexeinträge, die den gleichen Suchkriterien entsprechen.

Diese Option wird ignoriert, es sei denn, JET_bitSeekEQ wird ebenfalls angegeben.

Rückgabewert

Diese Funktion ermöglicht die Rückgabe aller JET_ERRs , die in dieser API definiert sind. Weitere Informationen zu Jet-Fehlern finden Sie unter Erweiterbare Speicher-Engine-Fehler und Fehlerbehandlungsparameter.

Rückgabecode

Beschreibung

JET_errSuccess

Der Vorgang wurde erfolgreich abgeschlossen.

Für JetSeek bedeutet dies, dass ein Indexeintrag gefunden wurde, der genau mit den Suchkriterien übereinstimmte.

JET_errClientRequestToStopJetService

Es ist nicht möglich, den Vorgang abzuschließen, da alle Aktivitäten auf der instance, die der Sitzung zugeordnet sind, aufgrund eines Aufrufs von JetStopService beendet wurden.

JET_errInstanceUnavailable

Es ist nicht möglich, den Vorgang abzuschließen, da 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.

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

JET_errKeyNotMade

Es gibt keinen aktuellen Suchschlüssel für den Cursor. JetSeek erfordert, dass der Cursor über einen gültigen Suchschlüssel verfügt, da dieser für die Suchkriterien verwendet wird, die zum Suchen von Indexeinträgen verwendet werden.

JET_errNotInitialized

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

JET_errRecordNotFound

Es wurde kein Indexeintrag gefunden, der den Suchkriterien entsprach.

JET_errRestoreInProgress

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

JET_wrnSeekNotEqual

Es wurde ein Indexeintrag gefunden, der den Suchkriterien entsprach. Dieser Indexeintrag war jedoch keine genaue Übereinstimmung.

JET_errSessionSharingViolation

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

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

JET_errTermInProgress

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

JET_wrnUniqueKey

Es wurde genau ein Indexeintrag gefunden, der genau mit den Suchkriterien übereinstimmte. Dieser Fehler wird nur zurückgegeben, wenn JET_bitSeekCheckUniqueness angegeben wurde und es günstig war, festzustellen, ob der übereinstimmende Indexeintrag der einzige Indexeintrag war, der genau den Suchkriterien entspricht.

Dieser Fehler wird nur von Windows Server 2003 und höheren Versionen zurückgegeben.

Bei erfolgreicher Ausführung wird der Cursor an einem Indexeintrag positioniert, der den Suchkriterien entspricht. 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 mehrere Indexeinträge denselben Wert haben, wird immer der Eintrag ausgewählt, der dem Indexanfang am nächsten ist.

Bei einem Fehler bleibt die Position des Cursors unverändert, es sei denn, JET_errRecordNotFound zurückgegeben wurde. In diesem Fall wird der Cursor an der Stelle positioniert, an der der Indexeintrag, der den suchkriterien entspricht, die durch den Suchschlüssel in diesem Cursor angegeben wurden, und die angegebene Ungleichheit gewesen wäre. Der Cursor kann relativ zu dieser Position verschoben werden, befindet sich aber immer noch nicht in 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. Es wird keine Änderung des Datenbankzustands vorgenommen.

Anforderungen

Anforderung Wert

Client

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

Server

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

Kopfzeile

Deklariert in Esent.h.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Weitere Informationen

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetSetIndexRange
JetStopService