JetSetIndexRange-Funktion
Gilt für: Windows | Windows Server
JetSetIndexRange-Funktion
Die JetSetIndexRange-Funktion beschränkt vorübergehend den Satz von Indexeinträgen, die der Cursor mithilfe von JetMove durchlaufen kann, auf diejenigen, die mit dem aktuellen Indexeintrag beginnen und auf dem Indexeintrag enden, 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 Optionen enthalten, die für diesen Aufruf verwendet werden sollen, einschließlich 0 oder mehr der folgenden Optionen:
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 Grenzwert des Indexbereichs inklusive ist. Wenn diese Option nicht vorhanden ist, gibt diese Option an, dass die Grenze des Indexbereichs exklusiv ist. Wenn der Grenzwert des Indexbereichs inklusive ist, werden alle Indexeinträge, die genau den Suchkriterien entsprechen, in den Bereich eingeschlossen. |
JET_bitRangeInstantDuration |
Mit dieser Option wird angefordert, dass der Indexbereich entfernt wird, sobald er eingerichtet wurde. Alle anderen Aspekte des Vorgangs bleiben unverändert. Dies ist nützlich, um zu testen, dass Indexeinträge vorhanden sind, die den Suchkriterien entsprechen. |
JET_bitRangeRemove |
Diese Option fordert an, dass ein vorhandener Indexbereich auf dem Cursor abgebrochen wird. Sobald der Indexbereich abgebrochen wurde, kann mithilfe von JetMove das Ende des Indexbereichs überschritten werden. Wenn ein Indexbereich noch nicht wirksam ist, schlägt JetSetIndexRange mit JET_errInvalidOperation fehl. Wenn diese Option angegeben ist, werden alle anderen Optionen ignoriert. |
JET_bitRangeUpperLimit |
Wenn diese Option verwendet wird, stellt die Suchtaste 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 der Index mithilfe von JetMove mit JET_MoveNext oder einem positiven Offset vorwärts ausgeführt wird. 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. Wenn diese Option weggelassen wird, stellt der Suchschlüssel im Cursor die Suchkriterien für den Indexeintrag dar, der dem Indexanfang am nächsten kommt, 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 der Index mithilfe von JetMove mit JET_MovePrevious oder einem negativen Offset rückwärts ausgeführt wird. Es ist nicht sinnvoll, diese Option mit einem Suchschlüssel auszulassen, der mithilfe von JetMakeKey mithilfe einer Wildcardoption erstellt wurde, um Indexeinträge am nächsten am Ende des Indexes zu finden. |
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. Für JetSetIndexRange bedeutet dies, dass entweder ein vorhandener Indexbereich abgebrochen wurde oder dass mindestens ein Indexeintrag innerhalb des Indexbereichs vorhanden ist. |
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_errInvalidOperation |
Dieser Fehler wird von JetSetIndexRange zurückgegeben, wenn JET_bitRangeRemove angegeben wurde und kein Indexbereich aktiv war. |
JET_errKeyNotMade |
Es gibt keinen aktuellen Suchschlüssel für den Cursor. JetSetIndexRange erfordert, dass der Cursor über einen gültigen Suchschlüssel verfügt, da er diesen für die Suchkriterien verwendet, die zum Suchen nach 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 über einen solchen Index wird nicht unterstützt. |
JET_errNoCurrentRecord |
Dieser Fehler wird von JetSetIndexRange zurückgegeben, um anzugeben, dass innerhalb des Indexbereichs keine Indexeinträge vorhanden sind. |
JET_errNotInitialized |
Es ist nicht möglich, den Vorgang abzuschließen, da die der Sitzung zugeordnete instance noch nicht initialisiert wurde. |
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_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. |
Wenn bei Erfolg JET_bitRangeRemove angegeben wird, wird der derzeit geltende Indexbereich abgebrochen. Wenn JET_bitRangeRemove nicht angegeben und JET_bitRangeInstantDuration angegeben wird, ist kein Indexbereich in Kraft. Wenn weder JET_bitRangeRemove noch JET_bitRangeInstantDuration angegeben wird, wird ein neuer Indexbereich wirksam. Dieser Indexbereich beschränkt vorübergehend den Satz von Indexeinträgen, die der Cursor mithilfe von JetMove durchlaufen kann, auf diejenigen, die beim aktuellen Indexeintrag beginnen und bei dem Indexeintrag enden, 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 wird keine Änderung des Datenbankzustands vorgenommen.
Wenn bei einem Fehler JET_errNoCurrentRecord nicht zurückgegeben wird, ist kein Indexbereich in Kraft. Wenn JET_errNoCurrentRecord zurückgegeben wird, wird ein neuer Indexbereich wirksam. Dieser Indexbereich beschränkt vorübergehend den Satz von Indexeinträgen, die der Cursor mithilfe von JetMove durchlaufen kann, auf diejenigen, die beim aktuellen Indexeintrag beginnen und bei dem Indexeintrag enden, 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 wird keine Änderung des Datenbankzustands vorgenommen.
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 eine Richtung. Wenn eine Obergrenze festgelegt wird, wird nur die Vorwärtsbewegung mithilfe von JetMove mit JET_MoveNext oder ein positiver Offset verhindert, sobald das Ende des Indexbereichs erreicht ist. In diesem Fall ist es weiterhin möglich, den Indexbereich mit JetMove mit JET_MovePrevious oder einem negativen Offset zu belassen. Eine analoge Situation tritt für eine untere 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. |
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
JetMove
JetSetIndexRange
JetStopService