Bde.DBTables.TDatabase.TransIsolation
Delphi
property TransIsolation: TTransIsolation read FTransIsolation write FTransIsolation default tiReadCommitted;
C++
__property TTransIsolation TransIsolation = {read=FTransIsolation, write=FTransIsolation, default=1};
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
property | published | Bde.DBTables.pas Bde.DBTables.hpp |
Bde.DBTables | TDatabase |
Description
Spécifie le niveau d'isolement des transactions géré par le moteur de Database Borland (BDE).
La propriété TransIsolation permet de spécifier le niveau d'isolement des transactions pour les transactions de base de données gérées par le BDE. Le niveau d'isolement des transactions détermine comment une transaction interagit avec d'autres transactions simultanées opérant sur les même tables et ce que la transaction sait du travail effectué par les autres transactions.
Remarque : Les applications utilisant SQL transparent pour gérer les transactions doivent transmettre directement au serveur de bases de données le niveau d'isolement de la transaction en utilisant l'instruction SQL appropriée.
TransIsolation peut prendre l'une des valeurs suivantes :
Niveau d'isolation | Signification |
---|---|
tiDirtyRead |
Permet la lecture des modifications non validées de la base de données effectuées par des transactions simultanées. Les modifications non validées ne sont pas permanentes, elles peuvent êtres annulées à tout moment. C'est le niveau le plus bas d'isolement d'une transaction par rapport aux effets d'autres transactions. |
tiReadCommitted |
Permet la lecture des modifications validées (permanentes) de la base de données effectuées par des transactions simultanées. C'est la valeur par défaut de la propriété TransIsolation. |
tiRepeatableRead |
Ne permet qu'une seule lecture de la base de données. La transaction ne peut connaître les modifications effectuées ultérieurement par d'autres transactions simultanées. Ce niveau garantit qu'une fois un enregistrement lu par la transaction, l'enregistrement ne change que si la transaction le change. C'est le niveau maximum d'isolement d'une transaction par rapport aux autres transactions. |
Différents serveurs de bases de données gèrent différents niveaux d'isolation de transaction. Si une application définit TransIsolation à un niveau non géré pour un serveur SQL distant, le BDE utilise le niveau immédiatement supérieur géré par ce serveur. Le tableau suivant résume les niveaux d'isolation gérés par les serveurs reconnus par le BDE :
Serveur | Niveau spécifié | Niveau utilisé |
---|---|---|
Oracle |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | tiRepeatableRead (READONLY) |
Sybase, MS-SQL |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | Non supporté |
DB2 |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
Informix |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
InterBase |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiReadCommitted | tiReadCommitted | tiRepeatableRead |
Paradox, dBASE, Access, FoxPro |
tiDirtyRead | tiReadCommitted | tiRepeatableRead |
tiDirtyRead | Non supporté | Non supporté |
Remarque : Pour les transactions locales avec Paradox ou dBASE, TransIsolation doit avoir la valeur tiDirtyRead. Sinon, une exception est déclenchée.
Si une application utilise ODBC comme interface avec un serveur, le pilote ODBC doit également gérer le niveau d'isolement. Pour plus d'informations sur les niveaux d'isolement gérés, voir la documentation du pilote ODBC.