Partager via


Jeu d'enregistrements : lancement d'une nouvelle requête sur un jeu d'enregistrements (ODBC)

Mise à jour : novembre 2007

Cette rubrique s'applique aux classes ODBC MFC.

La présente rubrique explique comment vous pouvez utiliser un objet recordset pour lancer une nouvelle requête — actualiser une requête — à partir de la base de données et dans quelles circonstances vous pourriez procéder ainsi à l'aide de la fonction membre Requery.

Les principales raisons pouvant conduire à lancer une nouvelle requête sur un jeu d'enregistrements sont les suivantes :

  • Mettre le jeu d'enregistrements à jour par rapport aux enregistrements ajoutés par vous-même ou d'autres utilisateurs et aux enregistrements supprimés par d'autres utilisateurs (ceux que vous avez vous-même supprimés sont déjà pris en compte dans le jeu d'enregistrements).

  • Actualiser le jeu d'enregistrements en fonction de valeurs de paramètres modifiées.

Mise à jour du jeu d'enregistrements

Il arrive fréquemment que vous ayez à lancer une nouvelle requête sur l'objet recordset pour le mettre à jour. Dans un environnement de base de données multi-utilisateur, d'autres utilisateurs peuvent effectuer des modifications sur les données pendant la durée de vie de votre jeu d'enregistrements. Pour savoir quand votre jeu d'enregistrements reflète les modifications effectuées par d'autres utilisateurs et quand les jeux d'enregistrements des autres utilisateurs reflètent vos propres modifications, consultez Jeu d'enregistrements : mise à jour des enregistrements par les jeux d'enregistrements (ODBC) et Feuille de réponse dynamique.

Lancement d'une nouvelle requête à l'aide de nouveaux paramètres

Une autre utilisation fréquente, et également importante, de Requery consiste à sélectionner un nouvel ensemble d'enregistrements à partir de valeurs de paramètres modifiées.

Conseil :

La requête s'effectue probablement encore plus vite si vous appelez Requery avec des valeurs de paramètres modifiées plutôt que si vous appelez à nouveau la fonction Open.

Feuilles de réponses dynamiques et instantanés

Comme les feuilles de réponse dynamiques sont censées présenter un ensemble d'enregistrements avec des données dynamiques et mises à jour, il arrive fréquemment que vous lanciez de nouvelles requêtes si vous voulez prendre en compte les ajouts effectués par les autres utilisateurs. D'un autre côté, les instantanés sont utiles car vous pouvez vous fier à leur contenu statique lorsque vous préparez des états, calculez des totaux, etc. Cependant, vous souhaiterez parfois lancer une nouvelle requête sur un instantané. Dans un environnement multi-utilisateur, les données des instantanés risquent de ne plus être synchronisées avec la source de données suite aux modifications de la base de données par d'autres utilisateurs.

Pour lancer une nouvelle requête sur un objet recordset

  • Appelez la fonction membre Requery de l'objet.

Autre solution, fermez le jeu d'enregistrements original et réouvrez-le. Dans les deux cas, le nouveau jeu d'enregistrements représente l'état courant de la source de données.

Pour obtenir un exemple, consultez Vues des enregistrements : remplissage d'une zone de liste à partir d'un second jeu d'enregistrements.

Conseil :

Pour optimiser les performances de Requery, é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 de Requery échoue, vous pouvez procéder à une nouvelle tentative pour que votre application se termine normalement. L'appel de Requery ou Open peut échouer pour diverses raisons. Une erreur réseau a pu se produire ; ou bien, lors de l'appel, les données existantes ont été libérées mais, avant même que les nouvelles données ne soient accessibles, un autre utilisateur a pu obtenir un accès exclusif ou bien la table dont votre jeu d'enregistrements dépend a été supprimée.

Voir aussi

Concepts

Jeu d'enregistrements (ODBC)

Jeu d'enregistrements : liaison dynamique de colonnes de données (ODBC)

Jeu d'enregistrements : création et fermeture de jeux d'enregistrements (ODBC)