Partager via


Jeu d'enregistrements : défilement (ODBC)

Mise à jour : novembre 2007

Cette rubrique s'applique aux classes ODBC MFC.

Après avoir ouvert un jeu d'enregistrements, vous avez besoin d'accéder aux enregistrements pour, entre autres, afficher les valeurs, effectuer des calculs ou générer des états. Le défilement permet de passer d'un enregistrement à l'autre au sein de votre jeu d'enregistrements.

Cette rubrique explique :

  • comment passer d'un enregistrement à l'autre au sein d'un jeu d'enregistrements ;

  • dans quels cas le défilement est pris en charge.

Défilement d'un enregistrement à l'autre

La classe CRecordset propose les fonctions membres Move pour faire défiler un jeu d'enregistrements. Ces fonctions déplacent l'enregistrement courant par jeu de lignes. Si vous avez implémenté l'extraction de lignes en bloc, l'opération Move repositionne le jeu d'enregistrements en fonction de la taille du jeu de lignes. Dans le cas contraire, l'appel de la fonction Move repositionne les enregistrements du jeu un par un. Pour plus d'informations sur l'extraction de lignes en bloc, consultez Jeu d'enregistrements : extraction globale d'enregistrements (ODBC).

Remarque :

Lorsque vous vous déplacez dans un jeu d'enregistrements, les enregistrements supprimés ne peuvent pas être ignorés. Pour plus d'informations, consultez la fonction membre IsDeleted.

En dehors des fonctions Move, CRecordset propose des fonctions membres permettant de vérifier si vous avez atteint la fin ou le début du jeu d'enregistrements.

Pour déterminer si le défilement est possible au sein de votre jeu d'enregistrements, appelez la fonction membre CanScroll.

Pour défiler

  1. vers l'avant d'un enregistrement ou d'un jeu de lignes à la fois, appelez la fonction membre MoveNext ;

  2. vers l'arrière d'un enregistrement ou d'un jeu de lignes à la fois, appelez la fonction membre MovePrev ;

  3. jusqu'au premier enregistrement du jeu d'enregistrements, appelez la fonction membre MoveFirst ;

  4. jusqu'au dernier enregistrement du jeu d'enregistrements ou jusqu'au dernier jeu de lignes, appelez la fonction membre MoveLast ;

  5. de N enregistrements à partir de la position courante, appelez la fonction membre Move.

Pour tester le début ou la fin d'un jeu d'enregistrements

  1. Vous êtes-vous déplacé au-delà du dernier enregistrement ? Appelez la fonction membre IsEOF.

  2. Si vous avez atteint le premier enregistrement (déplacement vers l'arrière), Appelez la fonction membre IsBOF.

Le code ci-après constitue un exemple d'utilisation de IsBOF et de IsEOF pour détecter le début ou la fin du jeu d'enregistrements lorsque vous défilez vers l'avant ou vers l'arrière.

// 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é avant le premier enregistrement. Dans les deux cas, il n'y a pas d'enregistrement actuel sur lequel opérer. Si vous appelez MovePrev alors que IsBOF a déjà la valeur TRUE, ou si vous appelez MoveNext alors que IsEOF a déjà la valeur TRUE, l'infrastructure lève une exception CDBException. Vous pouvez aussi utiliser IsBOF et IsEOF pour vérifier si un jeu d'enregistrements est vide.

Pour plus d'informations sur la navigation au sein d'un jeu d'enregistrements, consultez Jeu d'enregistrements : extraction globale d'enregistrements (ODBC).

Prise en charge du défilement

Tel qu'il fut conçu à l'origine, SQL ne permettait que le défilement vers l'avant. ODBC enrichit les possibilités de défilement. Le niveau de prise en charge disponible dépend des pilotes ODBC utilisés par votre application, du niveau de conformité de l'API ODBC du pilote et de l'éventuel chargement en mémoire de la bibliothèque de curseurs ODBC. 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 de CDatabase::Open.

Remarque :

Contrairement aux classes DAO MFC, les classes ODBC MFC ne fournissent pas de fonctions Find pour rechercher le prochain ou le précédent enregistrement obéissant à des critères définis.

Voir aussi

Concepts

Jeu d'enregistrements (ODBC)

Jeu d'enregistrements : filtrage d'enregistrements (ODBC)

Référence

CRecordset::CanScroll

CRecordset::CheckRowsetError