CDaoRecordset::FillCache

void FillCache (long * pSize = NULL, COleVariant * pBookmark = NULL);
jeter (CDaoException, CMemoryException) ;

Paramètres

pSize

Spécifie le nombre de lignes à remplir dans le cache. Si vous omettez ce paramètre, la valeur est déterminée par le paramètre de la propriété CacheSize de l'objet sous-jacent de la DAO.

pBookmark

Un COleVariant spécifiant un signet. Le cache est rempli à partir de l'enregistrement désigné par ce signet. Si vous omettez ce paramètre, le cache est rempli à partir du dossier indiqué par la propriété CacheStart de l'objet sous-jacent de la DAO.

Remarques

Appelez cette fonction membre pour mettre en cache un nombre spécifié d'enregistrements de l'objet recordset. Mise en cache améliore les performances d'une application qui récupère, ou extrait, les données d'un serveur distant. Un cache est l'espace dans la mémoire locale qui contient les données récemment extraites du serveur sur l'hypothèse que les données seront probablement demandées une fois de plus pendant l'exécution de l'application. Lorsque les données sont demandées, le moteur de base de données Microsoft Jet vérifie le cache pour les données d'abord plutôt que l'extraction à partir du serveur, ce qui prend plus de temps. À l'aide de données sur les sources de données ODBC-non de mise en cache n'a aucun effet car les données ne sont pas enregistrées dans le cache.

Plutôt que d'attendre pour le cache être remplis de dossiers qu'ils sont récupérés, vous pouvez explicitement remplir le cache à tout moment en appelant la fonction membre FillCache . Il s'agit d'un moyen plus rapide pour remplir le cache parce que FillCache extrait plusieurs enregistrements à la fois au lieu d'un à la fois. Par exemple, alors que chaque page-écran d'enregistrements est affiché, vous pouvez avoir votre appel demande FillCache pour extraire la prochaine page-écran d'enregistrements.

Toute base de données ODBC avec les objets recordset peut avoir un cache local. Pour créer le cache, ouvrez un objet recordset de la source de données distante et puis d'appeler le membre SetCacheSize et SetCacheStart les fonctions de l'objet recordset. Si lSize et lBookmark créent une plage qui est partiellement ou totalement à l'extérieur de la plage spécifiée par SetCacheSize et SetCacheStart, la portion de l'objet recordset en dehors de cette plage est ignorée et n'est pas chargée dans le cache. Si FillCache demande davantage de dossiers que de rester dans la source de données distante, seuls les enregistrements restants sont récupérés, et aucune exception n'est levée.

Dossiers récupérés dans le cache ne reflètent pas les modifications effectuées simultanément à la données de source par d'autres utilisateurs.

FillCache extrait uniquement les enregistrements qui ne sont pas déjà mis en cache. Pour forcer une mise à jour de toutes les données mises en cache, appelez la fonction membre SetCacheSize avec un paramètre lSize égal à 0, appel SetCacheSize à nouveau avec le paramètre lSize égale à la taille du cache vous initialement demandé et appelez ensuite FillCache.

Pour plus d'informations sur la mise en cache des dossiers, consultez l'article DAO externe : amélioration des performances avec des Sources de données externes dans le Guide du programmeur Visual C++. Pour plus d'informations, consultez la rubrique « Méthode FillCache » dans l'aide de DAO.

Aperçu de CDaoRecordset |  ; Membres de la classe | Graphique de la hiérarchie

Voir aussi  ;CDaoRecordset::GetCacheSize, CDaoRecordset::GetCacheStart, CDaoRecordset::SetCacheSize, CDaoRecordset::SetCacheStart

Index