Funzione JetDupCursor
Si applica a: Windows | Windows Server
Funzione JetDupCursor
La funzione JetDupCursor duplica un cursore aperto e restituisce un handle al cursore duplicato. Se il cursore duplicato era un cursore di sola lettura, il cursore duplicato è anche un cursore di sola lettura. Qualsiasi stato correlato alla costruzione di una chiave di ricerca o all'aggiornamento di un record non viene copiato nel cursore duplicato. Inoltre, la posizione del cursore originale non viene duplicata nel cursore duplicato. Il cursore duplicato viene sempre aperto sull'indice cluster e la relativa posizione è sempre nella prima riga della tabella.
JET_ERR JET_API JetDupCursor(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_TABLEID* ptableid,
__in JET_GRBIT grbit
);
Parametri
sesid
Sessione da usare per questa chiamata.
tableid
Cursore da usare per questa chiamata.
ptableid
Puntatore a tableid.
grbit
Riservato per utilizzi futuri.
Valore restituito
Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.
Codice restituito |
Descrizione |
---|---|
JET_errSuccess |
Operazione riuscita. |
JET_errClientRequestToStopJetService |
Non è possibile completare l'operazione perché tutte le attività nell'istanza associata alla sessione non sono state interrotte in seguito a una chiamata a JetStopService. |
JET_errInstanceUnavailable |
Non è possibile completare l'operazione perché l'istanza associata alla sessione ha rilevato un errore irreversibile che richiede che l'accesso a tutti i dati venga revocato per proteggere l'integrità dei dati. Questo errore verrà restituito solo da Windows XP e versioni successive. |
JET_errNotInitialized |
Non è possibile completare l'operazione perché l'istanza associata alla sessione non è ancora stata inizializzata. |
JET_errOutOfCursors |
Nessuna risorsa del cursore disponibile. |
JET_errRestoreInProgress |
Non è possibile completare l'operazione perché un'operazione di ripristino è in corso nell'istanza associata alla sessione. |
JET_errSessionSharingViolation |
La stessa sessione non può essere usata contemporaneamente per più thread. Questo errore verrà restituito solo da Windows XP e versioni successive. |
JET_errTermInProgress |
Non è possibile completare l'operazione perché l'istanza associata alla sessione viene arrestata. |
In caso di esito positivo, ptableid è impostato su un cursore duplicato.
In caso di errore, non vengono apportate modifiche. Lo stato di tableid è invariato.
Commenti
Il cursore duplicato non ha l'intero stato del cursore copiato. Il percorso del cursore duplicato, incluso l'indice corrente, è in genere diverso dal cursore specificato. Il cursore duplicato viene sempre restituito sull'indice cluster e sulla prima riga della tabella. Se la tabella è vuota, il cursore duplicato non è in alcuna riga.
Le tabelle aperte con JetDupCursor devono in genere essere chiuse con JetCloseTable. L'eccezione a questa regola si verifica quando JetDupCursor viene chiamato in una transazione e la transazione viene eseguito il rollback (con JetRollback). Quando si esegue il rollback di una transazione, il cursore viene chiuso automaticamente. In questo caso, si tratta di un errore per chiudere la tabella con JetCloseTable.
Il numero di tabelle che possono essere aperte simultaneamente è interessato direttamente da JET_paramMaxOpenTables. Per informazioni dettagliate, vedere Parametri di sistema .
Requisiti
Requisito | Valore |
---|---|
Client |
Richiede Windows Vista, Windows XP o Windows 2000 Professional. |
Server |
Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server. |
Intestazione |
Dichiarato in Esent.h. |
Libreria |
Usare ESENT.lib. |
DLL |
Richiede ESENT.dll. |
Vedere anche
JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
Parametri di sistema