Recordset : verrouillage d'enregistrements (ODBC)

Cette rubrique s’applique aux classes ODBC MFC.

Cette rubrique explique :

Lorsque vous utilisez un jeu d’enregistrements pour mettre à jour un enregistrement sur la source de données, votre application peut verrouiller l’enregistrement afin qu’aucun autre utilisateur ne puisse mettre à jour l’enregistrement en même temps. L’état d’un enregistrement mis à jour par deux utilisateurs en même temps n’est pas défini, sauf si le système peut garantir que deux utilisateurs ne peuvent pas mettre à jour un enregistrement simultanément.

Remarque

Cette rubrique s’applique aux objets dérivés de CRecordset où l’extraction de lignes en bloc n’a pas été implémentée. Si vous avez implémenté la récupération de lignes en bloc, certaines informations ne s’appliquent pas. Par exemple, vous ne pouvez pas appeler les fonctions membres Edit et Update. Pour plus d’informations sur l’extraction de lignes en bloc, consultez Recordset : Extraction d’enregistrements en bloc (ODBC).

Modes de verrouillage d’enregistrement

Les classes de base de données fournissent deux modes de verrouillage d’enregistrement :

  • Verrouillage optimiste (valeur par défaut)

  • Verrouillage pessimiste

La mise à jour d’un enregistrement se produit en trois étapes :

  1. Vous commencez l’opération en appelant la fonction membre Edit.

  2. Vous modifiez les champs appropriés de l’enregistrement actif.

  3. Vous terminez l’opération et validez normalement la mise à jour en appelant la fonction membre Update .

Le verrouillage optimiste verrouille l’enregistrement sur la source de données uniquement durant l’appel Update. Si vous utilisez le verrouillage optimiste dans un environnement multiutilisateur, l’application doit gérer une condition d’échec Update . Le verrouillage pessimiste verrouille l’enregistrement dès que vous appelez Edit et ne le libère pas tant que vous n'avez pas appelé Update. Les échecs sont indiqués par le biais du mécanisme CDBException, et non par une valeur de FALSE retournée par Update. Le verrouillage pessimiste risque d'entraîner une pénalité de performance pour d'autres utilisateurs, car l'accès simultané au même enregistrement pourrait devoir attendre la fin du processus de Update de votre application.

Verrouillage des enregistrements dans votre jeu d’enregistrements

Si vous souhaitez modifier le mode de verrouillage d’un objet recordset par défaut, vous devez modifier le mode avant d’appeler Edit.

Pour modifier le mode de verrouillage actuel de votre jeu d’enregistrements

  1. Appelez la fonction membre SetLockingMode en spécifiant soit CRecordset::pessimistic, soit CRecordset::optimistic.

Le nouveau mode de verrouillage reste en vigueur jusqu’à ce que vous le modifiez à nouveau ou que le jeu d’enregistrements soit fermé.

Remarque

Relativement peu de pilotes ODBC prennent actuellement en charge le verrouillage pessimiste.

Voir aussi

Recordset (ODBC)
Recordset : réalisation d'une jointure (ODBC)
Recordset : ajout, modification et suppression d’enregistrements (ODBC)