Recordset : Défilement (ODBC)
Cette rubrique s’applique aux classes ODBC MFC.
Après avoir ouvert un jeu d’enregistrements, vous devez accéder aux enregistrements pour afficher des valeurs, effectuer des calculs, générer des rapports, et ainsi de suite. Le défilement vous permet de passer de l’enregistrement à l’enregistrement dans votre jeu d’enregistrements.
Cette rubrique explique :
Comment faire défiler d’un enregistrement vers un autre dans un jeu d’enregistrements.
Dans quelles circonstances le défilement est et n’est pas pris en charge.
Défilement d’un enregistrement vers un autre
La classe CRecordset
fournit les Move
fonctions membres pour le défilement dans un jeu d’enregistrements. Ces fonctions déplacent l’enregistrement actif par ensembles de lignes. Si vous avez implémenté l’extraction de lignes en bloc, une Move
opération repositionne le jeu d’enregistrements en fonction de la taille de l’ensemble de lignes. Si vous n’avez pas implémenté la récupération de lignes en bloc, un appel à une Move
fonction repositionne le jeu d’enregistrements par un enregistrement à chaque fois. Pour plus d’informations sur l’extraction de lignes en bloc, consultez Recordset : Extraction d’enregistrements en bloc (ODBC).
Remarque
Lors du déplacement d’un jeu d’enregistrements, les enregistrements supprimés peuvent ne pas être ignorés. Pour plus d’informations, consultez la fonction membre IsDeleted .
En plus Move
des fonctions, CRecordset
fournit des fonctions membres pour vérifier si vous avez fait défiler la fin ou avant le début de votre jeu d’enregistrements.
Pour déterminer si le défilement est possible dans votre jeu d’enregistrements, appelez la CanScroll
fonction membre.
Pour faire défiler
Transférer un enregistrement ou un ensemble de lignes : appelez la fonction membre MoveNext .
Un enregistrement ou un ensemble de lignes vers l’arrière : appelez la fonction membre MovePrev .
Pour le premier enregistrement du jeu d’enregistrements : appelez la fonction membre MoveFirst .
Pour le dernier enregistrement dans le jeu d’enregistrements ou vers le dernier ensemble de lignes : appelez la fonction membre MoveLast .
N enregistrements relatifs à la position actuelle : appelez la fonction De membre Move .
Pour tester la fin ou le début du jeu d’enregistrements
Avez-vous fait défiler le dernier enregistrement ? Appelez la fonction membre IsEOF .
Avez-vous fait défiler vers l’avant du premier enregistrement (en arrière) ? Appelez la fonction membre IsBOF .
L’exemple de code suivant utilise IsBOF
et IsEOF
détecte les limites d’un jeu d’enregistrements lors du défilement dans les deux sens.
// 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
retourne une valeur différente de zéro si le jeu d’enregistrements est positionné au-delà du dernier enregistrement. IsBOF
retourne une valeur différente de zéro si le jeu d’enregistrements est positionné devant le premier enregistrement (avant tous les enregistrements). Dans les deux cas, il n’existe aucun enregistrement actif sur lequel opérer. Si vous appelez MovePrev
quand IsBOF
est déjà VRAI ou quand MoveNext
est IsEOF
déjà VRAI, l’infrastructure lève un CDBException
. Vous pouvez également utiliser IsBOF
et IsEOF
rechercher un jeu d’enregistrements vide.
Pour plus d’informations sur la navigation dans le jeu d’enregistrements, consultez Recordset : Signets et positions absolues (ODBC).
Lorsque le défilement est pris en charge
Comme prévu à l’origine, SQL n’a fourni que le défilement vers l’avant, mais ODBC étend les fonctionnalités de défilement. Le niveau de prise en charge disponible pour le défilement dépend des pilotes ODBC que votre application utilise, du niveau de conformité de l’API ODBC de votre pilote et si la bibliothèque de curseurs ODBC est chargée en mémoire. Pour plus d’informations, consultez ODBC et ODBC : Bibliothèque de curseurs ODBC.
Conseil
Vous pouvez contrôler si la bibliothèque de curseurs est utilisée. Consultez les paramètres bUseCursorLib et dwOptions sur CDatabase ::Open.
Remarque
Contrairement aux classes DAO MFC, les classes ODBC MFC ne fournissent pas d’ensemble de fonctions permettant de Find
localiser l’enregistrement suivant (ou précédent) qui répond aux critères spécifiés.
Voir aussi
Recordset (ODBC)
CRecordset ::CanScroll
CRecordset ::CheckRowsetError
Recordset : filtrage d’enregistrements (ODBC)