Instantané
Un instantané est un jeu d’enregistrements qui reflète une vue statique des données telle qu’elle existait au moment de la création de l’instantané. Lorsque vous ouvrez l’instantané et 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 l’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és pouvant être mis à jour ou en lecture seule avec les classes de base de données. Contrairement à une feuille de réponse dynamique, un instantané pouvant être mis à 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 pour l’instantané tant que vous n’appelez Requery
pas .
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 capture instantanée, vous pouvez donc le 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 captures instantanées, 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és (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és pouvant être mis à 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 à la fois des instantanés et des feuilles dynamiques, vous devez les baser sur deux objets différents CDatabase
(deux connexions différentes).
Pour plus d’informations sur le partage d’instantanés de propriétés avec tous les recordsets, consultez Recordset (ODBC). Pour plus d’informations sur ODBC et les instantanés, notamment la bibliothèque de curseurs ODBC, consultez ODBC.