Partager via


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 et Update les Edit fonctions membres. 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 Modifier le membre.

  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 pendant 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 Update pas appelé (les échecs sont indiqués par le biais du CDBException mécanisme, et non par une valeur de FALSE retournée par Update). Le verrouillage pessimiste risque d’entraîner une pénalité de performances pour d’autres utilisateurs, car l’accès simultané au même enregistrement peut être obligé d’attendre la fin du processus de Update 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 l’une ou l’autre CRecordset::pessimistic 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 : création d’une jointure (ODBC)
Recordset : ajout, modification et suppression d’enregistrements (ODBC)