Chapitre 5 : Mise à jour et persistance des données
S’applique à : Access 2013, Office 2013
Les chapitres précédents ont présenté la marche à suivre dans ADO pour accéder aux données d'une source de données, pour se déplacer dans les données et pour les modifier. Si l'application est évidemment conçue pour permettre aux utilisateurs de modifier ces données, il est tout aussi nécessaire qu'ils puissent enregistrer ces modifications. Pour ce faire, deux méthodes sont possibles : enregistrer les modifications de l'objet Recordset de façon persistante dans un fichier à l'aide de la méthode Save ou renvoyer ces modifications à la source de données, où elles seront stockées, avec les méthodes Update ou UpdateBatch.
Dans les chapitres précédents, vous avez appris à modifier les données dans plusieurs lignes de l'objet Recordset. Deux points méritent d'être soulignés quant à l'ajout, la suppression et la modification des lignes de données dans ADO.
La première notion est que les modifications ne sont pas immédiatement apportées à l’objet Recordset ; au lieu de cela, elles sont effectuées dans une mémoire tampon de copie interne. Si vous décidez de ne pas vouloir les modifications, les modifications dans la mémoire tampon de copie sont ignorées. Si vous décidez de conserver les modifications, les modifications apportées dans la mémoire tampon de copie sont appliquées à l’objet Recordset.
D'autre part, les modifications sont propagées à la source de données dès que vous achevez le traitement d'une ligne (mode de mise à jour immédiate) ou toutes les modifications apportées à un groupe de lignes sont collectées et conservées jusqu'à ce que vous acheviez le traitement de ce groupe (mode de mise à jour par lot). C'est la propriété LockType qui détermine quand ces modifications sont appliquées à la source de données sous-jacente. adLockOptimistic ou adLockPessimistic spécifie le mode de mise à jour immédiate tandis que adLockBatchOptimistic spécifie le mode de mise à jour par lot. La propriété CursorLocation peut déterminer les paramètres disponibles pour la propriété LockType. Par exemple, le paramètre adLockPessimistic n'est pas pris en charge si la propriété CursorLocation a la valeur adUseClient.
En mode de mise à jour immédiate, chaque appel de la méthode Update propage les modifications à la source de données. En mode de mise à jour par lot, chaque appel de la méthode Update ou chaque déplacement de la position de ligne active enregistre les modifications dans le tampon de copie, mais seule la méthode UpdateBatch propage les modifications à la source de données.
Ce chapitre présente les rubriques suivantes :