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