Oggetto Recordset ADO

Esempio

GetRows
Questo esempio dimostra come utilizzare il metodo GetRows.

Oggetto Recordset

L'oggetto Recordset di ADO viene utilizzato per contenere un insieme di record provenienti da una tabella del database. Un oggetto Recordset è composto da record e colonne (campi).

In ADO, questo oggetto è l'importante e più utilizzato per le operazioni sui dati del database.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Quando si apre per la prima volta un Recordset, il puntatore del record corrente si posiziona sul primo record, contemporaneamente le proprietà BOF e EOF sono False. Se non ci sono record, le proprietà BOF e EOF sono True.

L'oggetto Recordset è in grado di supportare due tipi di aggiornamento:

  • Aggiornamento immediato - Una volta chiamato il metodo Update, tutte le modifiche vengono scritte immediatamente nel database.
  • Aggiornamento in batch - Il provider cache più modifiche, quindi trasmette queste modifiche al database utilizzando il metodo UpdateBatch.

In ADO, sono definiti 4 tipi diversi di cursori (puntatori):

  • Cursor dinamico - Permette di visualizzare le aggiunte, le modifiche e le cancellazioni fatte dagli altri utenti
  • Cursor di set di chiave - Simile al cursor dinamico, la differenza è che non è possibile visualizzare le aggiunte fatte da altri utenti e impedisce l'accesso ai record eliminati dagli altri utenti. Le modifiche ai dati fatte dagli altri utenti sono comunque visibili.
  • Cursore statico - Fornisce una copia statica del set di record, utilizzabile per cercare dati o generare report. Inoltre, le aggiunte, le modifiche e le cancellazioni fatte dagli altri utenti saranno invisibili. Quando si apre un oggetto Recordset client, questo è l'unico tipo di cursore permesso.
  • Cursore in avanti statico - Fornisce una copia statica del set di record, utilizzabile per cercare dati o generare report. Inoltre, le aggiunte, le modifiche e le cancellazioni fatte dagli altri utenti saranno invisibili. Quando si apre un oggetto Recordset client, questo è l'unico tipo di cursore permesso.

Il tipo di cursore può essere impostato tramite l'attributo CursorType o il parametro CursorType nel metodo Open.

Nota:Non tutti i provider supportano tutti i metodi e attributi dell'oggetto Recordset.

Proprietà

Proprietà Descrizione
AbsolutePage Impostare o restituire un valore che specifica la pagina del record nell'oggetto Recordset.
AbsolutePosition Impostare o restituire un valore che specifica la posizione sequenziale del record corrente nell'oggetto Recordset.
ActiveCommand Restituire l'oggetto Command associato all'oggetto Recordset.
ActiveConnection Se la connessione è chiusa, impostare o restituire la definizione della connessione; se la connessione è aperta, impostare o restituire l'oggetto Connection corrente.
BOF Restituire true se la posizione del record corrente è prima del primo record, altrimenti restituire false.
Bookmark Impostare o restituire un segnalibro. Questo segnalibro salva la posizione del record corrente.
CacheSize Impostare o restituire il numero di record che possono essere memorizzati nella cache.
CursorLocation Impostare o restituire la posizione del servizio del cursore.
CursorType Impostare o restituire il tipo di cursore di un oggetto Recordset.
DataMember Impostare o restituire il nome del membro di dati da recuperare dall'oggetto specificato dall'attributo DataSource.
DataSource Specificare un oggetto che contiene i dati che devono essere rappresentati come oggetto Recordset.
EditMode Restituire lo stato di editing del record corrente.
EOF Restituire true se la posizione del record corrente è dopo l'ultimo record, altrimenti restituire false.
Filter Restituire un filtro per i dati dell'oggetto Recordset.
Index Impostare o restituire il nome dell'indice corrente dell'oggetto Recordset.
LockType Impostare o restituire un valore che specifica il tipo di bloccaggio che può essere utilizzato quando si modifica un record nel Recordset.
MarshalOptions Impostare o restituire un valore, questo valore specifica quali record vengono restituiti al server.
MaxRecords Imposta o restituisce il numero massimo di record che possono essere restituiti da un Recordset derivato da una query.
PageCount Restituisce il numero di pagine di dati in un oggetto Recordset.
PageSize Imposta o restituisce il numero massimo di record permessi su una singola pagina dell'oggetto Recordset.
RecordCount Restituisce il numero di record in un oggetto Recordset.
Sort Imposta o restituisce un nome di campo o più nomi di campo utilizzati come base per l'ordinamento del Recordset.
Source Imposta un valore di stringa, un riferimento all'oggetto Command o restituisce un valore di stringa che indica il sorgente dei dati dell'oggetto Recordset.
State Restituisce un valore che descrive se l'oggetto Recordset è aperto, chiuso, in connessione, in esecuzione o in fase di recupero dei dati.
Status Restituisce lo stato corrente del record riguardo a un batch update o ad altre operazioni su larga scala.
StayInSync Imposta o restituisce se l'indicatore del record dei figli cambia quando la posizione del record del genitore cambia.

Metodo

Metodo Descrizione
AddNew Crea un nuovo record.
Cancel Annulla un'esecuzione.
CancelBatch Annulla una batch update.
CancelUpdate Annulla le modifiche apportate a un record dell'oggetto Recordset.
Clone Crea una copia di un Recordset esistente.
Close Chiudi un Recordset.
CompareBookmarks Confronta due bookmarc.
Delete Elimina un record o un gruppo di record.
Find Cerca un record in un Recordset che soddisfi una condizione specifica.
GetRows Copia più record da un oggetto Recordset in un array bidimensionale.
GetString Restituisce il Recordset come stringa.
Move Sposta il puntatore del record nell'oggetto Recordset.
MoveFirst Sposta il puntatore del record alla prima riga.
MoveLast Sposta il puntatore del record all'ultima riga.
MoveNext Sposta il puntatore del record alla riga successiva.
MovePrevious Sposta il puntatore del record alla riga precedente.
NextRecordset Cancella l'oggetto Recordset corrente eseguendo una serie di comandi e torna al Recordset successivo.
Open Apri un elemento di database, che può fornire l'accesso ai record delle tabelle, ai risultati delle query o ai Recordset salvati.
Requery Aggiorna i dati dell'oggetto Recordset eseguendo di nuovo la query su cui si basa l'oggetto.
Resync Aggiorna i dati correnti del Recordset con un aggiornamento dal database originale.
Save Salva l'oggetto Recordset in un file o in un oggetto Stream.
Seek Cerca l'indice dell'oggetto Recordset per localizzare rapidamente una riga che corrisponde al valore specificato e renderla la riga corrente.
Supports Restituisce un valore booleano che definisce se l'oggetto Recordset supporta un tipo specifico di funzionalità.
Update Salva tutte le modifiche apportate a un singolo record di un oggetto Recordset.
UpdateBatch Salva tutte le modifiche apportate a un Recordset in un database. Utilizzare in modalità aggiornamento batch.

Evento

Nota: Non è possibile gestire gli eventi utilizzando VBScript o JScript (solo i linguaggi Visual Basic, Visual C++ e Visual J++ possono gestire gli eventi).

Evento Descrizione
EndOfRecordset Viene attivato quando si tenta di muoversi oltre la fine del Recordset.
FetchComplete Viene attivato quando tutti i record dell'operazione asincrona sono stati letti.
FetchProgress Viene attivato regolarmente durante l'operazione asincrona, per riportare il numero di record letti.
FieldChangeComplete Viene attivato dopo aver modificato il valore di un oggetto Field.
MoveComplete Viene attivato dopo aver modificato la posizione corrente nel Recordset.
RecordChangeComplete Viene attivato dopo aver modificato una riga.
RecordsetChangeComplete Viene attivato dopo aver modificato il Recordset.
WillChangeField Viene attivato prima di modificare il valore di un oggetto Field.
WillChangeRecord Viene attivato prima di modificare una riga.
WillChangeRecordset Viene attivato prima di modificare il Recordset.
WillMove Viene attivato prima del cambio di posizione corrente nel Recordset.

Collezione

Collezione Descrizione
Fields Indica il numero di oggetti Field presenti in questo oggetto Recordset.
Properties Contiene tutti gli oggetti Property degli oggetti Recordset.

Proprietà della raccolta Fields

Proprietà Descrizione
Count

Restituisce il numero di elementi nella raccolta fields. Partito da 0.

Esempio:

	countfields = rs.Fields.Count
	
Item(named_item/number)

Restituisce un elemento specifico della raccolta fields.

Esempio:

	itemfields = rs.Fields.Item(1)
	oppure	
	itemfields = rs.Fields.Item("Name")
	

Proprietà della raccolta Properties

Proprietà Descrizione
Count

Restituisce il numero di elementi nella raccolta properties. Partito da 0.

Esempio:

	countprop = rs.Properties.Count
	
Item(named_item/number)

Restituisce un elemento specifico della raccolta properties.

Esempio:

	itemprop = rs.Properties.Item(1)
	oppure
	itemprop = rs.Properties.Item("Name")