Cursori rettangolari

Molte applicazioni impiegano una notevole quantità di tempo per portare i dati in rete. Parte di questo tempo viene effettivamente impiegato per portare i dati in rete, e un’altra parte viene impiegata per il sovraccarico di rete, come nel caso della chiamata effettuata dal driver per richiedere una riga di dati. Questo tempo può essere ridotto se l'applicazione usa in modo efficiente cursorirettangolari o fat, che possono restituire più righe alla volta.

Un'applicazione ha sempre la possibilità di usare un cursore rettangolare. Nelle origini dati da cui è possibile recuperare una sola riga alla volta, i cursori rettangolari devono essere simulati nel driver. A tale scopo, è possibile eseguire più recuperi a riga singola. Anche se è improbabile che questo fornisca miglioramenti alle prestazioni, apre opportunità per le applicazioni. Tali applicazioni riscontreranno quindi un aumento delle prestazioni man mano che i DBMS implementeranno i cursori rettangolari in modo nativo e i driver associati a tali DBMS li esporranno.

Le righe restituite in un singolo recupero con un cursore rettangolare sono denominate set di righe. È importante non confondere il set di righe con il set di risultati. Il set di risultati viene mantenuto nell'origine dati, mentre il set di righe viene mantenuto nei buffer dell'applicazione. Mentre il set di risultati è fisso, il set di righe non lo è: cambia posizione e contenuto ogni volta che viene recuperato un nuovo set di righe. Proprio come un cursore a riga singola, ad esempio il cursore forward-only SQL tradizionale, punta a una riga corrente, un cursore rettangolare punta al set di righe, che può essere considerato come le righe correnti.

Per eseguire operazioni che agiscono su una singola riga quando sono state recuperate più righe, l'applicazione deve prima indicare qual è la riga corrente. La riga corrente è richiesta dalle chiamate a SQLGetData e dalle istruzioni di aggiornamento posizionato ed eliminazione. Quando un cursore rettangolare restituisce un set di righe, la riga corrente è la prima riga del set di righe. Per modificare la riga corrente, l'applicazione chiama SQLSetPos o SQLBulkOperations (per eseguire l'aggiornamento in base al segnalibro). Nella figura seguente viene illustrata la relazione tra set di risultati, set di righe, riga corrente, cursore del set di righe e cursore rettangolare. Per altre informazioni, vedere Uso di cursori rettangolari, più avanti in questa sezione, e Istruzioni di aggiornamento posizionato ed eliminazione e Aggiornamento dei dati con SQLSetPos.

Fetching Next, Prior, First, and Last Rowsets

Il fatto che un cursore sia un cursore rettangolare è indipendente dal fatto che sia scorrevole. Ad esempio, la maggior parte del lavoro in un'applicazione di report viene impiegata per recuperare e stampare righe. Per questo motivo, funzionerà più velocemente con un cursore rettangolare forward-only. Usa un cursore forward-only per evitare la spesa di un cursore scorrevole, e un cursore rettangolare per ridurre il traffico di rete.

Questa sezione descrive gli argomenti seguenti: