CursorType e LockType

20 marzo 2006

Chiunque si sia trovato a relazionare un database con una pagina ASP ha dovuto, per forza di cose, gestire le proprietà CursorType e LockType. Il problema è che, nella maggior parte dei casi, il tutto è avvenuto quasi automaticamente senza realmente comprendere il significato di questi valori.

Ricordo che, i primi tempi che mi avvicinai ad ASP, da eterno curioso non riuscivo a spiegarmi cosa volessero dire quei numeri a fianco del comando di apertura del recordset. Soprattutto, non riuscivo a comprendere perché script apparentemente identici riportassero valori differenti.

Vediamo allora cosa sono questi due elementi. Prima di procedere prendiamo in esempio un normalissimo codice per l’apertura di un recordset.

strSQL = “SELECT * FROM nometabella”
objRs.Open objConn, strSQL, 1, 2

Analizzando la seconda riga, troviamo

  • objRs.Open : il comando di apertura del recordset
  • objConn : il parametro che definisce la connessione
  • strSQL : il parametro che definisce la query SQL da eseguire
  • 1 : il parametro che definisce il CursorType
  • 2 : il parametro che definisce il LockType

CursorType

CursorType definisce il tipo di cursore di un recordset.

Per comprendere meglio la sua funzione immaginiamo per un attimo di accedere ad una tabella di un database Access attraverso la console di gestione. Non appena aperta la tabella noteremo un puntatore, gestibile attraverso la tastiera ed il mouse, posizionarsi sulla prima cella in alto a sinistra.

Questo cursore definisce il record (ovvero la riga) e la cella in cui ci troviamo e nella quale si rifletteranno eventuali comandi di aggiornamento o modifica.

L’utilità del cursore nel caso di una connessione al database tramite ASP è la stessa. Ci consente di navigare attraverso i record e di eseguire operazioni su di essi.

Tipi di Cursore

Esistono 4 tipi di cursori, ognuno con le proprie caratteristiche.

Forward Only(solo in avanti)
È il cursore predefinito quando non è specificato un valore alternativo. Consente di muoversi solo in avanti attraverso i record. La costante ADO che lo identifica è adOpenForwardOnly mentre il valore è 0.

Static(Statico)
Permette di spostarsi avanti ed indietro tra i record ma non riflette le modifiche eseguite da altri utenti. La costante ADO che lo identifica è adOpenStatic mentre il valore è 3.

Dynamic(Dinamico)
È il cursore più flessibile. Consente di muoversi avanti ed indietro e riflette le modifiche eseguite da altri utenti. La costante ADO che lo identifica è adOpenDynamic mentre il valore è 2.

Keyset(Set di tasti)
Permette lo spostamento avanti ed indietro, riflette le modifiche eseguite da altri utenti ad eccetto dell’inserimento e della rimozione di record. La costante ADO che lo identifica è adOpenKeyset mentre il valore è 1.

Se vuoi aggiornamenti su CursorType e LockType inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su CursorType e LockType

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy