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é. |
|
SQL_FETCH_PRIOR |
l'ensemble de lignes précédent ; nRows est ignoré. |
|
SQL_FETCH_FIRST |
Le premier jeu de lignes dans le recordset ; nRows est ignoré. |
|
SQL_FETCH_LAST |
Le dernier jeu de lignes complet du recordset ; nRows est ignoré. |
|
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é. |
|
SQL_FETCH_BOOKMARK |
L'ensemble de lignes à partir de la ligne dont la valeur du signet correspond à nRows. |
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