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