Homa Page di Daniele Franceschini
Determinare lo stato di un cursore
Sintassi
Faccio subito un esempio:
CURSOR_STATUS
(
{ 'local' , 'cursor_name' }
| { 'global' , 'cursor_name' }
| { 'variable' , 'cursor_variable' }
)DECLARE curTable CURSOR LOCAL FORWARD_ONLY FOR
Nell'esempio si apre un cursore locale scorrevole solo in avanti, si tenta di leggere il 1° record con l'istruzione FETCH NEXT e si testa lo stato con la funzione Cursor_Status come è indicata nell'esempio. Tale funzione può restituire i seguenti valori numerici che indicano quanto segue: Valore Descrizione
SELECT Fields
FROM Table
WHERE Field = @Field
OPEN curTable
FETCH NEXT FROM curTable
--Verifica che sia presente il record
IF Cursor_Status('local', 'curTable') <= 0
BEGIN
do something
END
ELSE
BEGIN
do something else
END
| 1 | Il set di risultati del cursore include almeno una riga. Nel caso di cursori INSENSITIVE e KEYSET, il set di risultati include almeno una riga. Nel caso di cursori dinamici, il set di risultati può includere una o più righe oppure nessuna riga. |
| 0 | Il set di risultati del cursore è vuoto. I cursori dinamici non restituiscono mai questo risultato. |
| -1 | Il cursore è chiuso. |
| -2 | Non applicabile. |
| -3 | Il cursore specificato non esiste. |
Queste informazioni sono state riprese dalla guida di riferimento a Transact-SQL




