JetGetCurrentIndex-Funktion

Gilt für: Windows | Windows Server

JetGetCurrentIndex-Funktion

Die JetGetCurrentIndex-Funktion bestimmt den Namen des aktuellen Indexes eines bestimmten Cursors. Dieser Name wird auch verwendet, um diesen Index später mithilfe von JetSetCurrentIndex erneut als aktuellen Index auszuwählen. Es kann auch verwendet werden, um die Eigenschaften dieses Indexes mithilfe von JetGetTableIndexInfo zu ermitteln.

    JET_ERR JET_API JetGetCurrentIndex(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_PSTR szIndexName,
      __in          unsigned long cchIndexName
    );

Parameter

sesid

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

tableid

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

szIndexName

Der Ausgabepuffer, der den Namen des aktuellen Indexes des Cursors empfängt.

cchIndexName

Die maximale Größe in Zeichen des Ausgabepuffers.

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.

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_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.

JET_wrnBufferTruncated

Der Vorgang wurde erfolgreich abgeschlossen, aber der Ausgabepuffer war zu klein, um den gesamten Indexnamen zu erhalten.

Der Ausgabepuffer wurde mit dem gewünschten Indexnamen gefüllt. Wenn der Ausgabepuffer mindestens ein Zeichen lang ist, wird die Zeichenfolge in diesem Ausgabepuffer null beendet.

Hinweis Dieser Fehler wird nicht zurückgegeben, wenn cchIndexName null ist. Weitere Informationen finden Sie im Abschnitt Hinweise.

Bei Erfolg wird der Name des aktuellen Indexes des angegebenen Cursors im Ausgabepuffer zurückgegeben. Wenn JET_wrnBufferTruncated zurückgegeben wird, enthält der Ausgabepuffer so viel vom Indexnamen, wie in den bereitgestellten Speicherplatz passt. Wenn der Ausgabepuffer mindestens ein Zeichen lang ist, wird die in diesem Puffer zurückgegebene Zeichenfolge null beendet. Es wird keine Änderung des Datenbankzustands vorgenommen.

Bei einem Fehler ist der Zustand des Ausgabepuffers nicht definiert. Es wird keine Änderung des Datenbankzustands vorgenommen.

Bemerkungen

Wenn kein aktueller Index für den Cursor vorhanden ist, wird eine leere Zeichenfolge zurückgegeben. Dies kann passieren, wenn sich der Cursor auf dem gruppierten Index der Tabelle befindet und kein primärer Index definiert wurde. Dieser Index wird als sequenzieller Index der Tabelle bezeichnet und verfügt über keine Definition. Wenn Sie den aktuellen Index mithilfe von JetSetCurrentIndex auf eine leere Zeichenfolge festlegen, wird der gruppierte Index unabhängig vom Vorhandensein einer primären Indexdefinition ausgewählt.

Es gibt einen wichtigen Fehler in dieser Funktion, der in allen Releases vorhanden ist. Wenn der Ausgabepuffer zu klein ist, um den gesamten Indexnamen zu empfangen, und der Ausgabepuffer mindestens ein Zeichen lang ist, wird JET_wrnBufferTruncated NICHT zurückgegeben. stattdessen wird JET_errSuccess zurückgegeben. Um dieses Problem zu vermeiden, sollte der Ausgabepuffer immer mindestens JET_cbNameMost + 1 (65) Zeichen lang sein.

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.

Unicode

Implementiert als JetGetCurrentIndexW (Unicode) und JetGetCurrentIndexA (ANSI).

Weitere Informationen

JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex