Partager via


CRecordset::Requery

Régénère (l'actualise) un recordset.

virtual BOOL Requery( );

Valeur de retour

Une valeur différente de zéro si le recordset est correctement régénéré ; sinon 0.

Notes

Si les enregistrements retournés, le premier enregistrement redevient l'enregistrement courant.

Pour que le recordset reflète les ajouts et les suppressions que vous ou d'autres utilisateurs apportées à la source de données, vous devez régénérer le recordset en appelant Requery. Si le recordset est une feuille de réponse dynamique, elle reflète automatiquement les mises à jour que vous ou d'autres utilisateurs apportées à ses enregistrements existants (mais pas à ajouts). Si le recordset est un instantané, vous devez appeler Requery pour refléter les modifications apportées par d'autres utilisateurs ainsi que les ajouts et suppressions.

Pour une feuille de réponse dynamique ou un instantané, un appel Requery lorsque vous souhaitez reconstruire le recordset à l'aide d'un nouveau filtre ou le tri, de nouvelles valeurs de paramètre. Définissez la nouvelle propriété de filtre ou de tri en assignant de nouvelles valeurs à m_strFilter et à m_strSort avant d'appeler Requery. Définissez les nouveaux paramètres en assignant de nouvelles valeurs aux membres de données de type paramètre avant d'appeler Requery. Si le filtre et les chaînes de tri sont pas affectés, vous pouvez réutiliser la requête, qui améliore les performances.

Si la tentative de régénérer le recordset échoue, le recordset est fermé. Avant d'appeler Requery, vous pouvez déterminer si le recordset peut être actualisé en appelant la fonction membre d' CanRestart . CanRestart ne garantit pas que Requery réussit.

Avertissement

Appel Requery uniquement après que vous avez appelé Ouvrez.

Exceptions

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

Exemple

Cet exemple régénère un recordset pour appliquer un ordre de tri différent.

CCustomer rsCustSet(&m_dbCust);

// Open the recordset
rsCustSet.Open();

// Use the recordset ... 

// Set the sort order and Requery the recordset
rsCustSet.m_strSort = _T("L_Name, ContactFirstName");
if(!rsCustSet.CanRestart())
   return;    // Unable to requery 

if(!rsCustSet.Requery())
   // Requery failed, so take action
   AfxMessageBox(_T("Requery failed!"));

Configuration requise

Header: afxdb.h

Voir aussi

Référence

CRecordset, classe

Graphique de la hiérarchie

CRecordset::CanRestart

CRecordset::m_strFilter

CRecordset::m_strSort