JetDupCursor-Funktion

Gilt für: Windows | Windows Server

JetDupCursor-Funktion

Die JetDupCursor-Funktion dupliziert einen geöffneten Cursor und gibt ein Handle an den duplizierten Cursor zurück. Wenn der duplizierte Cursor ein schreibgeschützter Cursor war, ist der duplizierte Cursor auch ein schreibgeschützter Cursor. Jeder Zustand, der sich auf das Erstellen eines Suchschlüssels oder das Aktualisieren eines Datensatzes bezieht, wird nicht in den duplizierten Cursor kopiert. Darüber hinaus wird die Position des ursprünglichen Cursors nicht in den duplizierten Cursor dupliziert. Der duplizierte Cursor wird immer für den gruppierten Index geöffnet, und seine Position befindet sich immer in der ersten Zeile der Tabelle.

    JET_ERR JET_API JetDupCursor(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_TABLEID* ptableid,
      __in          JET_GRBIT grbit
    );

Parameter

sesid

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

tableid

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

Ptableid

Zeiger auf tableid.

grbit

Für die zukünftige Verwendung reserviert.

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_errOutOfCursors

Es sind keine verfügbaren Cursorressourcen vorhanden.

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.

Bei Erfolg wird ptableid auf einen duplizierten Cursor festgelegt.

Bei einem Fehler werden keine Änderungen vorgenommen. Der Status von tableid ist unverändert.

Bemerkungen

Der duplizierte Cursor hat nicht den gesamten Cursorzustand kopiert. Die Position des duplizierten Cursors, einschließlich des aktuellen Indexes, unterscheidet sich in der Regel vom angegebenen Cursor. Der duplizierte Cursor wird immer für den gruppierten Index und die erste Zeile in der Tabelle zurückgegeben. Wenn die Tabelle leer ist, befindet sich der duplizierte Cursor in keiner Zeile.

Mit JetDupCursor geöffnete Tabellen sollten in der Regel mit JetCloseTable geschlossen werden. Die Ausnahme von dieser Regel tritt auf, wenn JetDupCursor in einer Transaktion aufgerufen wird und für die Transaktion ein Rollback ausgeführt wird (mit JetRollback). Beim Rollback einer Transaktion wird der Cursor automatisch geschlossen. In diesem Fall ist es ein Fehler, die Tabelle mit JetCloseTable zu schließen.

Die Anzahl der Tabellen, die gleichzeitig geöffnet werden können, wird direkt von JET_paramMaxOpenTables beeinflusst. Weitere Informationen finden Sie unter Systemparameter .

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_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
Systemparameter