Recordset : lancement d'une nouvelle requête sur un recordset (ODBC)
Cette rubrique s’applique aux classes ODBC MFC.
Cette rubrique explique comment utiliser un objet recordset pour requery (autrement dit, actualiser) à partir de la base de données et quand vous souhaiterez peut-être le faire avec la fonction membre Requery .
Les principales raisons de la réexécutation d’un jeu d’enregistrements sont les suivantes :
Mettez à jour le jeu d’enregistrements par rapport aux enregistrements ajoutés par vous ou par d’autres utilisateurs et enregistrements supprimés par d’autres utilisateurs (ceux que vous supprimez sont déjà reflétés dans le jeu d’enregistrements).
Actualisez le jeu d’enregistrements en fonction de la modification des valeurs de paramètre.
Mise à jour de l’objet Recordset
Fréquemment, vous souhaiterez réexécuter votre objet recordset pour l’afficher à jour. Dans un environnement de base de données multiutilisateur, d’autres utilisateurs peuvent apporter des modifications aux données pendant la durée de vie de votre jeu d’enregistrements. Pour plus d’informations sur le moment où votre recordset reflète les modifications apportées par d’autres utilisateurs et lorsque les recordsets d’autres utilisateurs reflètent vos modifications, consultez Recordset : How Recordsets Update Records (ODBC) and Dynaset.
Nouvelle requête basée sur de nouveaux paramètres
Une autre utilisation fréquente , et tout aussi importante, de Requery consiste à sélectionner un nouvel ensemble d’enregistrements en fonction de la modification des valeurs de paramètre.
Conseil
La vitesse des requêtes est probablement beaucoup plus rapide si vous appelez Requery
avec la modification des valeurs de paramètre que si vous appelez Open
à nouveau.
Requerying Dynasets vs Snapshots
Étant donné que les feuilles de réponse dynamiques sont destinées à présenter un ensemble d’enregistrements avec des données dynamiques à jour, vous souhaitez souvent requérir des feuilles de réponse dynamiques si vous souhaitez refléter les ajouts d’autres utilisateurs. Les instantanés, d’autre part, sont utiles, car vous pouvez vous appuyer en toute sécurité sur leur contenu statique pendant que vous préparez des rapports, calculent les totaux, et ainsi de suite. Cependant, il se peut que vous souhaitiez parfois requérir une instantané également. Dans un environnement multiutilisateur, instantané données peuvent perdre la synchronisation avec la source de données lorsque d’autres utilisateurs modifient la base de données.
Pour réexécuter un objet recordset
- Appelez la fonction membre Requery de l’objet.
Vous pouvez également fermer et rouvrir le jeu d’enregistrements d’origine. Dans les deux cas, le nouveau jeu d’enregistrements représente l’état actuel de la source de données.
Pour obtenir un exemple, consultez Affichages d’enregistrements : remplissage d’une zone de liste à partir d’un second recordset.
Conseil
Pour optimiser les Requery
performances, évitez de modifier le filtre ou le tri du jeu d’enregistrements. Modifiez uniquement la valeur du paramètre avant d’appeler Requery
.
Si l’appel Requery
échoue, vous pouvez réessayer l’appel ; sinon, votre application doit se terminer correctement. Un appel à Requery
ou Open
peut échouer pour un certain nombre de raisons. Peut-être qu’une erreur réseau se produit ; ou, pendant l’appel, une fois les données existantes publiées, mais avant l’obtention des nouvelles données, un autre utilisateur peut obtenir un accès exclusif ; ou la table sur laquelle dépend votre jeu d’enregistrements peut être supprimée.
Voir aussi
Recordset (ODBC)
Recordset : liaison dynamique de colonnes de données (ODBC)
Recordset : création et fermeture de recordsets (ODBC)