Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Oggetto RecordSet

Descrizione dettagliata dell'oggetto RecorSet
Descrizione dettagliata dell'oggetto RecorSet
Link copiato negli appunti

Incominceremo ora il viaggio e l'analisi del punto cardine della gestione dei database nel mondo web ambientato in Active Server Page: il recordset. Come visto nelle lezioni precedenti, è proprio nel RecordSet (chiamato RS nei vari listati di codice proposti) che possiamo trovare i dati (in parte o tutti) del nostro database. La distinzione sulla quantità di dati appena fatta riguarda ciò che desideriamo visualizzare nella nostra pagina. Infatti, in precedenza, è stato illustrato il percorso da svolgere per rendere il database più efficiente all'utente finale. Tra le diverse fasi di analisi, vi è anche quella di ridurre al minimo i dati che dobbiamo estrarre evitando quelli non necessari. Pensiamo al nostro recordset come un foglio di lavoro di Excel. Nella parte superiore, troviamo generalmente le lettere A, B, C ecc. Nella colonna di sinistra, troviamo una serie numerica 1, 2, 3 ecc. Le lettere vanno sostituite coi nomi dei campi che desideriamo estrarre e le righe vanno considerate i record.

Vediamo ora questa rappresentazione tramite una tabella

Record Set
 
Campo1
Campo2
CampoN
Riga1
val[c1,r1 ]
val[c2,r1 ]
val[cN,r1 ]
Riga2
val[c1,r2 ]
val[c2,r2 ]
val[cN,r2 ]
RigaN
val[c1,r3 ]
val[c2,r3 ]
val[cN,rN ]

Nella tabella appena proposta, ho schematizzato l'oggetto RecordSet dopo la sua creazione. Il motivo per cui la tabella risulta in certe parti colorata ed in altre no, è molto semplice, ma verrà spiegato in seguito. Ora è giunto il momento di introdurre il concetto di puntatore al RecordSet. Quando apriamo il recordset, ed incominciamo a leggere il suo contenuto, a video otterremo una serie di valori formattati ma che seguono un ordine ben definito. Infatti, osserviamo che tutti i record vengono mostrati in ordine dal primo all'ultimo. Questo come mai? La risposta è molto semplice. Ogni volta che apriamo un RecordSet, il suo puntatore viene posizionato alla prima riga dello stesso. Già, ma cos'è un puntatore ad un recordset? Si definisce puntatore al recordset un indice che ha il compito di indicare la riga del RecordSet che stiamo analizzando. Esistono diversi tipi di puntatori al database. Quello di default, quando viene aperto il recordset (se non diversamente specificato), si chiama forward-only. Questo tipo di puntatore è molto efficiente, ma ha uno svantaggio fondamentale: consente solamente di avanzare all'interno del recordset. Ora illustro il perché della tabella colorata. Supponiamo di effettuare le seguenti interrogazioni sql:

strSQL = " SELECT * FROM tabella_recordset "

La tabella_recordset è quella rappresentata nella figura precedente. Se effettuiamo questa interrogazione, otterremo la tabella_recordset in modo completo. Tutti i dati immessi saranno quelli a noi visibili ed analizzabili all'interno del recordset generato con l'istruzione sql. Per poterli visionare, dobbiamo far scorrere il puntatore con l'istruzione rs.movenext lungo tutto il recordset.

La seconda istruzione sql che analizziamo è la seguente

strSQL = " SELECT * FROM tabella_recordset WHERE
Campo1='val[c1,r2 ]'"

In questo caso specifico, otteniamo come risultato finale nel recordset la striscia blu rappresentata nella tabella. Anche in questo caso, il puntatore del recordset si posiziona al primo record estratto. In questo caso è anche l'ultimo e quindi se decidessimo di proseguire, otterremmo un errore di superamento del limite del recordset. Per evitare lo sfondamento del recordset, si utilizza il controllo rs.eof. Egli ha il compito di verificare se si è alla fine o no del recordset creato.

Nel caso rimanente, effettueremo la seguente istruzione sql:

strSQL = " SELECT CampoN FROM tabella_recordset
WHERE Campo1='val[c1,rN ]' "

Come si potrà intuire dagli esempi precedenti, ora otterremo nel recordset solamente un record. Questo record avrà solo un campo ed è ciò che ho rappresentato nella tabella assegnando uno sfondo giallino. Ragionamento analogo al precedente è quello riguardante il movimento nel recordset. Infatti il recordset sarà anche in questo caso composto da un solo record.

Ti consigliamo anche