Recordset: scorrimento (ODBC)
Le informazioni contenute in questo argomento sono valide per le classi ODBC MFC.
Dopo aver aperto un recordset, è necessario accedere ai record per visualizzare i valori, eseguire calcoli, generare report e così via. Lo scorrimento consente di passare dal record al recordset.
In questo argomento:
Scorrimento da un record a un altro
La classe CRecordset
fornisce le funzioni membro per lo Move
scorrimento all'interno di un recordset. Queste funzioni spostano il record corrente in base ai set di righe. Se è stato implementato il recupero delle righe bulk, un'operazione Move
riposiziona il recordset in base alle dimensioni del set di righe. Se non è stato implementato il recupero delle righe bulk, ogni volta una chiamata a una Move
funzione riposiziona il recordset di un record. Per altre informazioni sul recupero delle righe bulk, vedere Recordset: recupero di record in blocco (ODBC).
Nota
Quando si passa attraverso un recordset, i record eliminati potrebbero non essere ignorati. Per altre informazioni, vedere la funzione membro IsDeleted .
Oltre alle Move
funzioni, CRecordset
fornisce funzioni membro per verificare se è stato eseguito lo scorrimento oltre la fine o prima dell'inizio del recordset.
Per determinare se lo scorrimento è possibile nel recordset, chiamare la CanScroll
funzione membro.
Per scorrere
Inoltrare un record o un set di righe: chiamare la funzione membro MoveNext .
Indietro di un record o di un set di righe: chiamare la funzione membro MovePrev .
Al primo record nel recordset: chiamare la funzione membro MoveFirst .
All'ultimo record nel recordset o all'ultimo set di righe: chiamare la funzione membro MoveLast .
N record relativi alla posizione corrente: chiamare la funzione membro Move .
Per verificare la fine o l'inizio del recordset
Hai passato l'ultimo record? Chiamare la funzione membro IsEOF .
È stato eseguito lo scorrimento prima del primo record (in movimento all'indietro)? Chiamare la funzione membro IsBOF .
Nell'esempio di codice seguente vengono IsBOF
usati e IsEOF
per rilevare i limiti di un recordset durante lo scorrimento in entrambe le direzioni.
// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );
if( rsCustSet.IsBOF( ) )
return;
// The recordset is empty
// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
rsCustSet.MoveNext( );
// Move to the last record
rsCustSet.MoveLast( );
// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
rsCustSet.MovePrev( );
// First record is current again
rsCustSet.MoveFirst( );
IsEOF
restituisce un valore diverso da zero se il recordset è posizionato oltre l'ultimo record. IsBOF
restituisce un valore diverso da zero se il recordset è posizionato prima del primo record (prima di tutti i record). In entrambi i casi, non esiste alcun record corrente su cui operare. Se si chiama MovePrev
quando IsBOF
è già TRUE o si chiama MoveNext
quando IsEOF
è già TRUE, il framework genera un'eccezione CDBException
. È anche possibile usare IsBOF
e IsEOF
per verificare la presenza di un recordset vuoto.
Per altre informazioni sullo spostamento dei recordset, vedere Recordset: Segnalibri e posizioni assolute (ODBC).For more information about recordset navigation, see Recordset: Bookmarks and Absolute Positions (ODBC).
Quando lo scorrimento è supportato
Come originariamente progettato, SQL ha fornito solo lo scorrimento in avanti, ma ODBC estende le funzionalità di scorrimento. Il livello di supporto disponibile per lo scorrimento dipende dai driver ODBC con cui l'applicazione funziona, dal livello di conformità dell'API ODBC del driver e dal fatto che la libreria di cursori ODBC venga caricata in memoria. Per altre informazioni, vedere ODBC e ODBC: Libreria di cursori ODBC.
Suggerimento
È possibile controllare se viene utilizzata la libreria di cursori. Vedere i parametri bUseCursorLib e dwOptions in CDatabase::Open.
Nota
A differenza delle classi DAO MFC, le classi ODBC MFC non forniscono un set di Find
funzioni per individuare il record successivo (o precedente) che soddisfa i criteri specificati.
Vedi anche
Recordset (ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
Recordset: applicazione di filtri ai record (ODBC)