Partager via


CRecordset::Move

 

Déplace le pointeur d'enregistrement actif dans le recordset, en avant ou arrière.

Syntaxe

      virtual void Move( 
   long nRows, 
   WORD wFetchType = SQL_FETCH_RELATIVE  
);

Paramètres

  • nRows
    Le nombre de lignes à déplacer vers l'avant ou arrière.  Les valeurs positives passent en avant, vers la fin du recordset.  Les valeurs négatives déplacez vers l'arrière, vers le début.  

  • wFetchType
    Détermine le jeu de lignes que Déplacer récupérera.  Pour plus d'informations, consultez les notes.  

Notes

Si vous passez une valeur de 0 pour nRows, Déplacer actualise l'enregistrement en cours ; Déplacer terminera tout AddNew ou état actuel de Modifier , et restaurera la valeur de l'enregistrement actif avant qu' AddNew ou Modifier a été appelé.

Notes

Lorsque vous déplacez dans un recordset, vous ne pouvez pas ignorer les enregistrements supprimés.  Consultez CRecordset::IsDeleted pour plus d'informations.  Lorsque vous ouvrez CRecordset avec le jeu d'options de skipDeletedRecords , des assertions de Déplacer si le paramètre d' nRows est 0.  Ce comportement empêché l'actualisation des lignes qui sont supprimés par d'autres applications clientes en utilisant les mêmes données.  Consultez le paramètre d' dwOption dans Ouvrez pour obtenir une description de skipDeletedRecords.  

Déplacer repositionne le recordset par les ensembles de lignes.  En fonction de les valeurs de nRows et wFetchType, Déplacer extrait l'ensemble de lignes approprié puis note au premier enregistrement dans cet ensemble de lignes l'enregistrement courant.  Si vous n'avez pas implémenté l'extraction de lignes en bloc, la taille du jeu de lignes est toujours 1.  En récupérant un jeu de lignes, Déplacer appelle directement la fonction membre de CheckRowsetError pour gérer les erreurs provenant de l'effort.  

Selon les valeurs vous passez, Déplacer équivaut à d'autres fonctions membres d' CRecordset .  En particulier, la valeur d' wFetchType peut indiquer une fonction membre qui est plus intuitive et souvent la méthode recommandée pour déplacer l'enregistrement courant.  

Le tableau suivant répertorie les valeurs possibles pour wFetchType, l'ensemble de lignes que Déplacer récupérera sur wFetchType et nRows, et toute fonction membre équivalente correspondant à wFetchType.

wFetchType

Jeu de lignes extrait

Fonction membre équivalente

SQL_FETCH_RELATIVE (valeur par défaut)

L'ensemble de lignes à partir de les lignes d' nRows de la première ligne dans l'ensemble de lignes actuel.

 

SQL_FETCH_NEXT

L'ensemble de lignes ; nRows est ignoré.

MoveNext

SQL_FETCH_PRIOR

l'ensemble de lignes précédent ; nRows est ignoré.

MovePrev

SQL_FETCH_FIRST

Le premier jeu de lignes dans le recordset ; nRows est ignoré.

MoveFirst

SQL_FETCH_LAST

Le dernier jeu de lignes complet du recordset ; nRows est ignoré.

MoveLast

SQL_FETCH_ABSOLUTE

Si nRows > 0, l'ensemble de lignes à partir de les lignes d' nRows du début du recordset.  Si nRows < 0, l'ensemble de lignes à partir de les lignes d' nRows de la fin du recordset.  Si nRows = 0, un état de (BOF) de début du fichier est retourné.  

SetAbsolutePosition

SQL_FETCH_BOOKMARK

L'ensemble de lignes à partir de la ligne dont la valeur du signet correspond à nRows.

SetBookmark

Notes

Pour les recordsets en avant seulement, Déplacer est uniquement valide avec une valeur d' SQL_FETCH_NEXT pour wFetchType.

Avertissement

Appelant Déplacer lève une exception si le recordset n'a aucun enregistrement.  Pour déterminer si le recordset contient les enregistrements, appelez IsBOF et IsEOF.  

Notes

Si vous avez fait défiler au delà de le début ou la fin du recordset (IsBOF ou IsEOF retourne une valeur différente de zéro), l'appel d'une fonction de Déplacer lèvera probablement CDBException.  Par exemple, si IsEOF retourne une valeur différente de zéro et IsBOF n'est pas le cas, puis MoveNext lève une exception, mais MovePrev pas.  

Notes

Si vous appelez Déplacer lorsque l'enregistrement actuel est mis à jour ou ajouté, les mises à jour sont perdues sans avertissement.

Pour plus d'informations sur la navigation au sein d'un recordset, consultez les articles recordset : Défilement (ODBC) et recordset : Signets et positions absolues (ODBC).  Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article recordset : Extraction globale d'enregistrements (ODBC).  Pour des informations connexes, consultez la fonction API ODBC SQLExtendedFetch dans SDK Windows.  

Exceptions

Exception

Condition

Cette méthode peut lever des exceptions de type CDBException* et CMemoryException*.

Exemple

// rs is a CRecordset or a CRecordset-derived object

// Change the rowset size to 5
rs.SetRowsetSize(5);

// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);

// Move to the first record in the recordset
rs.MoveFirst();

// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset,
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);

rs.MoveFirst();
rs.MoveNext();

Configuration requise

Header: afxdb.h

Voir aussi

CRecordset Class
Graphique hiérarchique
CRecordset::MoveNext
CRecordset::MovePrev
CRecordset::MoveFirst
CRecordset::MoveLast
CRecordset::SetAbsolutePosition
CRecordset::SetBookmark
CRecordset::IsBOF
CRecordset::IsEOF
CRecordset::CheckRowsetError