JetSetIndexRange-Funktion

Gilt für: Windows | Windows Server

JetSetIndexRange-Funktion

Die JetSetIndexRange-Funktion schränkt vorübergehend den Satz von Indexeinträgen ein, die der Cursor mit JetMove auf diejenigen einschränkt, die vom aktuellen Indexeintrag bis zum Indexeintrag beginnen, der den suchkriterien entspricht, die vom Suchschlüssel in diesem Cursor und den angegebenen gebundenen Kriterien angegeben werden. Ein Suchschlüssel muss zuvor mit JetMakeKey erstellt worden sein.

    JET_ERR JET_API JetSetIndexRange(
      __in          JET_SESID sesid,
    __in          JET_TABLEID tableidSrc,
      __in          JET_GRBIT grbit
    );

Parameter

sesid

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

tableidSrc

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

grbit

Eine Gruppe von Bits, die die für diesen Aufruf zu verwendenden Optionen enthalten, die null oder mehr der folgenden Elemente enthalten:

Wert

Bedeutung

JET_bitRangeInclusive

Dieses Vorhandensein oder Fehlen dieser Option gibt die Begrenzungskriterien des Indexbereichs an. Wenn diese Option vorhanden ist, gibt diese Option an, dass der Indexbereich inklusiv ist. Wenn diese Option nicht vorhanden ist, gibt diese Option an, dass der Indexbereich exklusiv ist. Wenn das Limit des Indexbereichs inklusiv ist, werden alle Indexeinträge, die genau mit den Suchkriterien übereinstimmen, in den Bereich aufgenommen.

JET_bitRangeInstantDuration

Diese Option fordert an, dass der Indexbereich entfernt wird, sobald er eingerichtet wurde. Alle anderen Aspekte des Vorgangs bleiben unverändert. Dies ist nützlich, um zu testen, ob Indexeinträge vorliegen, die den Suchkriterien entsprechen.

JET_bitRangeRemove

Diese Option fordert an, dass ein vorhandener Indexbereich auf dem Cursor abgebrochen wird. Nachdem der Indexbereich abgebrochen wurde, ist es möglich, mit JetMove über das Ende des Indexbereichs hinaus zu wechseln. Wenn ein Indexbereich noch nicht in Kraft ist, tritt bei JetSetIndexRange ein Fehler mit JET_errInvalidOperation.

Wenn diese Option angegeben wird, werden alle anderen Optionen ignoriert.

JET_bitRangeUpperLimit

Wenn diese Option verwendet wird, stellt der Suchschlüssel im Cursor die Suchkriterien für den Indexeintrag dar, der dem Ende des Indexes am nächsten ist, der dem Indexbereich entspricht. Der Indexbereich wird zwischen der aktuellen Position des Cursors und diesem Indexeintrag festgelegt, sodass alle Übereinstimmungen gefunden werden können, indem Sie den Index mit JetMove mit JET_MoveNext oder einem positiven Offset vorwärts bewegen.

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

Wenn diese Option weggelassen wird, stellt der Suchschlüssel im Cursor die Suchkriterien für den Indexeintrag dar, der dem Anfang des Indexes am nächsten ist, der dem Indexbereich entspricht. Der Indexbereich wird zwischen der aktuellen Position des Cursors und diesem Indexeintrag festgelegt, sodass alle Übereinstimmungen gefunden werden können, indem sie im Index mit JetMove mit JET_MovePrevious oder einem negativen Offset rückwärts gehen.

Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel auslassen, der mit JetMakeKey mithilfe einer Platzhalteroption erstellt wurde, um Indexeinträge zu finden, die dem Ende des Indexes am nächsten sind.

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.

Für JetSetIndexRangebedeutet dies, dass entweder ein vorhandener Indexbereich abgebrochen wurde oder mindestens ein Indexeintrag innerhalb des Indexbereichs vorhanden ist.

JET_errClientRequestToStopJetService

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

JET_errInstanceUnavailable

Der Vorgang kann nicht abgeschlossen werden, da für die der Sitzung zugeordnete Instanz 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 xp Windows und späteren Versionen zurückgegeben.

JET_errInvalidOperation

Dieser Fehler wird von JetSetIndexRange zurückgegeben, wenn JET_bitRangeRemove angegeben wurde und kein Indexbereich in Kraft war.

JET_errKeyNotMade

Es gibt keinen aktuellen Suchschlüssel für den Cursor. JetSetIndexRange erfordert, dass der Cursor einen gültigen Suchschlüssel hat, da er diesen für die Suchkriterien verwendet, die zum Suchen von Indexeinträgen verwendet werden.

JET_errNoCurrentIndex

Es gibt keinen aktuellen Index für den Cursor. Dies geschieht für JetSetIndexRange, wenn sich der Cursor auf dem gruppierten Index einer Tabelle befindet und kein primärer Index definiert wurde. Das Festlegen eines Indexbereichs für einen solchen Index wird nicht unterstützt.

JET_errNoCurrentRecord

Dieser Fehler wird von JetSetIndexRange zurückgegeben, um anzugeben, dass im Indexbereich keine Indexeinträge enthalten sind.

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errSessionSharingViolation

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

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

JET_errTermInProgress

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

Bei Erfolg wird JET_bitRangeRemove index range, der derzeit in Kraft ist, abgebrochen. Wenn JET_bitRangeRemove nicht angegeben und JET_bitRangeInstantDuration angegeben wird, ist kein Indexbereich wirksam. Wenn weder JET_bitRangeRemove noch JET_bitRangeInstantDuration ist, ist ein neuer Indexbereich wirksam. Dieser Indexbereich schränkt vorübergehend den Satz von Indexeinträgen ein, die der Cursor mit JetMove auf diejenigen einschränkt, die vom aktuellen Indexeintrag bis zum Indexeintrag beginnen, der den Suchkriterien entspricht. Die Position des Cursors bleibt unverändert. Wenn ein Suchschlüssel für den Cursor erstellt wurde, wird dieser Suchschlüssel gelöscht. Es erfolgt keine Änderung des Datenbankstatus.

Wenn bei einem Fehler JET_errNoCurrentRecord nicht zurückgegeben wird, ist kein Indexbereich wirksam. Wenn JET_errNoCurrentRecord zurückgegeben wird, ist ein neuer Indexbereich wirksam. Dieser Indexbereich schränkt vorübergehend den Satz von Indexeinträgen ein, die der Cursor mit JetMove auf diejenigen einschränkt, die vom aktuellen Indexeintrag bis zum Indexeintrag beginnen, der den Suchkriterien entspricht. Die Position des Cursors bleibt unverändert. Wenn JET_errNoCurrentRecord zurückgegeben wurde und ein Suchschlüssel für den Cursor erstellt wurde, wird dieser Suchschlüssel gelöscht. Es erfolgt keine Änderung des Datenbankstatus.

Bemerkungen

Ein Indexbereich ist flüchtig und wird automatisch abgebrochen, wenn eine andere Navigation als JetMove auf dem Cursor ausgeführt wird.

Indexbereiche funktionieren nur in einer Richtung. Wenn eine Obergrenze festgelegt wird, wird nur die Vorwärtsbewegung mit JetMove mit JET_MoveNext oder ein positiver Offset verhindert, sobald das Ende des Indexbereichs erreicht wurde. Es ist weiterhin möglich, den Indexbereich in diesem Fall zu verlassen, indem JetMove mit JET_MovePrevious oder einem negativen Offset verwendet wird. Eine analoge Situation tritt bei einer unteren Grenze auf.

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.

Header

Wird in Esent.h deklariert.

Bibliothek

Verwenden Sie ESENT.lib.

DLL

Erfordert ESENT.dll.

Weitere Informationen

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetMakeKey
JetMove
JetSetIndexRange
JetStopService