Instantané

Un instantané est un jeu d’enregistrements qui reflète une vue statique des données telle qu’elles existaient au moment de la création de la instantané. Lorsque vous ouvrez le instantané et que vous passez à tous les enregistrements, l’ensemble d’enregistrements qu’il contient et leurs valeurs ne changent pas tant que vous ne régénérez pas le instantané en appelant Requery.

Remarque

Cette rubrique s’applique aux classes ODBC MFC. Si vous utilisez les classes DAO MFC au lieu des classes ODBC MFC, consultez CDaoRecordset ::Open pour obtenir une description des jeux d’enregistrements de type instantané.

Vous pouvez créer des instantané pouvant être mis à jour ou en lecture seule avec les classes de base de données. Contrairement à une feuille de réponse dynamique, une instantané pouvant être mise à jour ne reflète pas les modifications apportées aux valeurs d’enregistrement effectuées par d’autres utilisateurs, mais elle reflète les mises à jour et les suppressions effectuées par votre programme. Les enregistrements ajoutés à un instantané ne deviennent pas visibles par le instantané tant que vous n’avez pas appelé Requery.

Conseil

Un instantané est un curseur statique ODBC. Les curseurs statiques n’obtiennent pas réellement une ligne de données tant que vous ne faites pas défiler jusqu’à cet enregistrement. Pour vous assurer que tous les enregistrements sont immédiatement récupérés, vous pouvez faire défiler jusqu’à la fin de votre jeu d’enregistrements, puis faire défiler jusqu’au premier enregistrement que vous souhaitez voir. Notez toutefois que le défilement jusqu’à la fin implique une surcharge supplémentaire et peut réduire les performances.

Les instantanés sont les plus précieux lorsque vous avez besoin que les données restent fixes pendant vos opérations, comme lorsque vous générez un rapport ou effectuez des calculs. Même si la source de données peut différer considérablement de votre instantané, vous voudrez peut-être la reconstruire de temps en temps.

La prise en charge des instantanés est basée sur la bibliothèque de curseurs ODBC, qui fournit des curseurs statiques et des mises à jour positionnées (nécessaires à la mise à jour) pour n’importe quel pilote de niveau 1. La DLL de bibliothèque de curseurs doit être chargée en mémoire pour cette prise en charge. Lorsque vous construisez un CDatabase objet et appelez sa OpenEx fonction membre, vous devez spécifier l’option CDatabase::useCursorLib du paramètre dwOptions . Si vous appelez la Open fonction membre, la bibliothèque de curseurs est chargée par défaut. Si vous utilisez des feuilles de réponse dynamique au lieu de instantané s, vous ne souhaitez pas charger la bibliothèque de curseurs.

Les instantanés sont disponibles uniquement si la bibliothèque de curseurs ODBC a été chargée lorsque l’objet CDatabase a été construit ou si le pilote ODBC que vous utilisez prend en charge les curseurs statiques.

Remarque

Pour certains pilotes ODBC, les instantané (curseurs statiques) peuvent ne pas être mis à jour. Consultez la documentation de votre pilote pour connaître les types de curseurs pris en charge et les types d’accès concurrentiel qu’ils prennent en charge. Pour garantir des instantané pouvant être mises à jour, veillez à charger la bibliothèque de curseurs en mémoire lorsque vous créez un CDatabase objet. Pour plus d’informations, consultez ODBC : Bibliothèque de curseurs ODBC.

Remarque

Si vous souhaitez utiliser les instantané et les feuilles dynamiques, vous devez les baser sur deux objets différents (deux connexions différentesCDatabase).

Pour plus d’informations sur les propriétés instantané s partager avec tous les recordsets, consultez Recordset (ODBC). Pour plus d’informations sur ODBC et les instantané, notamment la bibliothèque de curseurs ODBC, consultez ODBC.

Voir aussi

ODBC (Open Database Connectivity)