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