Cursori ODBC

Un'applicazione recupera i dati con un cursore. Un cursore è diverso da un set di risultati: un set di risultati è il set di righe che corrisponde a criteri di ricerca specifici, mentre un cursore è il software che restituisce tali righe all'applicazione. Il nome cursore, applicato ai database, probabilmente ha origine dal cursore lampeggiante su un terminale del computer. Proprio come questo cursore indica la posizione corrente sullo schermo e il punto in cui verranno visualizzate le parole digitate, un cursore su un set di risultati indica la posizione corrente nel set di risultati e quale riga verrà restituita successivamente.

Il modello di cursore in ODBC si basa sul modello di cursore in SQL incorporato. Una differenza notevole tra questi modelli è la modalità di apertura dei cursori. In SQL incorporato, un cursore deve essere dichiarato in modo esplicito, e aperto prima di essere usato. In ODBC, un cursore viene aperto in modo implicito quando viene eseguita un'istruzione che crea un set di risultati. Quando viene aperto, il cursore è posizionato davanti alla prima riga del set di risultati. In ODBC e SQL incorporato, un cursore deve essere chiuso al termine dell'uso dell'applicazione.

I diversi cursori hanno caratteristiche diverse. Il tipo di cursore più comune, denominato cursore forward-only, può spostarsi solo in avanti, all’interno del set di risultati. Per tornare a una riga precedente, l'applicazione deve chiudere e riaprire il cursore e quindi leggere le righe dall'inizio del set di risultati fino a raggiungere la riga richiesta. I cursori forward-only forniscono un meccanismo rapido per eseguire un singolo passaggio attraverso un set di risultati.

I cursori forward-only sono meno utili per le applicazioni basate sullo schermo, in cui l'utente scorre i dati in avanti e indietro. Tali applicazioni possono usare un cursore forward-only leggendo il set di risultati una sola volta, memorizzando nella cache i dati in locale e scorrendoli. Tuttavia, questo funziona correttamente solo con piccole quantità di dati. Una soluzione migliore consiste nell'usare un cursore scorrevole, che consente l'accesso casuale al set di risultati. Tali applicazioni possono anche migliorare le prestazioni recuperando più righe di dati alla volta, usando il cosiddetto cursore rettangolare. Per altre informazioni sui cursori rettangolari, vedere Uso di cursori rettangolari.

Il cursore forward-only è il tipo di cursore predefinito in ODBC ed è illustrato nelle sezioni seguenti. Per altre informazioni sui cursori rettangolari e sui cursori scorrevoli, vedere Cursori rettangolari e cursori scorrevoli.

Importante

Eseguire il commit o il rollback di una transazione, sia chiamando in modo esplicito SQLEndTran sia agendo in modalità di commit automatico, fa sì che alcune origini dati chiudano tutti i cursori su tutte le istruzioni di una connessione. Per ulteriori informazioni, vedere gli attributi SQL_CURSOR_COMMIT_BEHAVIOR e SQL_CURSOR_ROLLBACK_BEHAVIOR nella descrizione della funzione SQLGetInfo.