Partager via


Mise à jour et enregistrement des données

Les chapitres précédents expliquaient comment utiliser ADO pour accéder aux données dans une source de données, comment se déplacer dans les données et comment modifier les données. Bien sûr, si l’objectif de votre application est de permettre aux utilisateurs d’apporter des modifications aux données, vous devez savoir comment enregistrer ces modifications. Vous pouvez soit conserver les modifications d’un Recordset apportées à un fichier à l’aide de la méthode Save, soit renvoyer les modifications à la source de données à des fins de stockage à l’aide des méthodes Update ou UpdateBatch.

Dans les chapitres précédents, vous avez modifié les données dans plusieurs lignes du Recordset. ADO prend en charge deux notions de base relatives à l’ajout, à la suppression et à la modification de lignes de données.

La première notion consiste à dire que les modifications ne sont pas immédiatement apportées au Recordset; elles sont en fait appliquées dans une mémoire tampon de copie interne. Si vous décidez de ne pas appliquer les modifications, les modifications de la mémoire tampon de copie sont ignorées. Si vous décidez de conserver les modifications, les modifications apportées à la mémoire tampon de copie sont appliquées au Recordset.

La deuxième notion est que soit les modifications sont propagées à la source de données dès que vous déclarez le travail sur une ligne terminée (c’est-à-dire, en mode immédiat), soit toutes les modifications apportées à un ensemble de lignes sont collectées jusqu’à ce que vous déclariez le travail sur l’ensemble terminé (c’est-à-dire, en mode batch). La propriété LockType détermine à quel moment les modifications sont apportées à la source de données sous-jacente. adLockOptimistic ou adLockPessimistic spécifie le mode immédiat, tandis que adLockBatchOptimistic spécifie le mode batch. La propriété CursorLocation peut affecter les paramètres LockType disponibles. Par exemple, le paramètre adLockPessimistic n’est pas pris en charge si la propriété CursorLocation est définie sur adUseClient.

En mode immédiat, chaque appel de la méthode Update propage les modifications sur la source de données. En mode batch, chaque appel de Update ou chaque déplacement de la position de ligne actuelle enregistre les modifications sur la mémoire tampon de copie, mais seule la méthode UpdateBatch propage les modifications sur la source de données.

Cette section contient les rubriques suivantes :