Utilisation de CacheSize
Utilisez la propriété CacheSize pour contrôler le nombre d’enregistrements à récupérer à la fois dans la mémoire locale du fournisseur. Par exemple, si la valeur de la propriété CacheSize est 10, après avoir ouvert l’objet Recordset, le fournisseur récupère les 10 premiers enregistrements dans la mémoire locale. Lorsque vous parcourez l’objet Recordset, le fournisseur retourne les données de la mémoire tampon locale. Dès que vous dépassez dernier enregistrement dans le cache, le fournisseur récupère les 10 enregistrements suivants de la source de données dans le cache.
Notes
La propriété CacheSize est basée sur la propriété spécifique du fournisseur Maximum Open Rows (dans la collection Properties de l’objet Recordset). Vous ne pouvez pas définir la propriété CacheSize sur une valeur supérieure à Maximum Open Rows. Pour modifier le nombre de lignes qui peuvent être ouvertes par le fournisseur, définissez la propriété Maximum Open Rows.
La valeur de la propriété CacheSize peut être ajustée pendant la durée de vie de l’objet Recordset, mais la modification de cette valeur affecte uniquement le nombre d’enregistrements dans le cache après les récupérations suivantes de la source de données. La modification de la valeur de la propriété seule ne modifie pas le contenu actuel du cache.
S’il existe moins d’enregistrements à récupérer que ne le spécifie la propriété CacheSize, le fournisseur retourne les enregistrements restants et aucune erreur ne se produit.
Un paramétrage de la propriété CacheSize sur zéro n’est pas autorisé et retourne une erreur.
Les enregistrements récupérés à partir du cache ne reflètent pas les modifications simultanées que d’autres utilisateurs ont apportées aux données sources. Pour forcer une mise à jour de toutes les données mises en cache, utilisez la méthode Resync.
Si la propriété CacheSize est définie sur une valeur supérieure à 1, les méthodes de navigation (Move, MoveFirst, MoveLast, MoveNext et MovePrevious) peuvent entraîner une navigation vers un enregistrement supprimé, si la suppression se produit après la récupération des enregistrements. Après l’extraction initiale, les suppressions suivantes ne sont pas répercutées dans votre cache de données tant que vous n’avez pas tenté d’accéder à une valeur de données à partir d’une ligne supprimée. Toutefois, la définition de la propriété CacheSize sur 1 élimine ce problème, car des lignes supprimées ne peuvent pas être extraites.