|
|
|
|
|
- Présentation
- Débuter une transaction
- Valider une transaction
- Annuler une transaction
- Reprendre une transaction
- Exemple
A partir de la version 21, il est possible de gérer des transactions en code SQL. Pour débuter une transaction, les syntaxes SQL suivantes sont utilisables : - BEGIN
- BEGIN WORK
- BEGIN TRANSACTION
- START TRANSACTION
- START TRANSACTION ISOLATION LEVEL <Niveau>. Le paramètre <Niveau> peut correspondre à :
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
En l'absence de niveau d'isolation fixé dans la commande SQL, le niveau d'isolation utilisé pour la transaction est celui actuellement défini.
Pour définir le niveau d'isolation, il est également possible d'utiliser la syntaxe : SET ISOLATION LEVEL <Niveau> Le paramètre <Niveau> peut correspondre à : - READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE
Pour valider une transaction, les syntaxes SQL suivantes sont utilisables : - COMMIT
- COMMIT WORK
- COMMIT TRANSACTION
Les syntaxes permettant d'enchaîner une nouvelle transaction sont également disponibles : - COMMIT AND CHAIN
- COMMIT WORK AND CHAIN
- COMMIT TRANSACTION AND CHAIN
Pour annuler une transaction, les syntaxes SQL suivantes sont utilisables : - ROLLBACK
- ROLLBACK WORK
- ROLLBACK TRANSACTION
Les syntaxes permettant d'enchaîner une nouvelle transaction sont également disponibles : - ROLLBACK AND CHAIN
- ROLLBACK WORK AND CHAIN
- ROLLBACK TRANSACTION AND CHAIN
Reprendre une transaction Pour définir et et nommer un point de sauvegarde dans la transaction en cours, la syntaxe SQL suivante est utilisable : SAVEPOINT nomDuSavePoint Pour annuler les opérations effectuées durant la transaction jusqu'au point de sauvegarde, la syntaxe SQL suivante est utilisable : ROLLBACK TO SAVEPOINT nomDuSavePoint let sdrTransactionStart is SQL Query =
[
START TRANSACTION
]
let sdrSavePoint is SQL Query =
[
SAVEPOINT monPoint
]
let sdr is SQL Query =
[
INSERT INTO client
VALUES (3, 20), (4,22)
]
let sdrRollbackSavePoint is SQL Query =
[
ROLLBACK TO SAVEPOINT monPoint
]
let sdrTransactionFin is SQL Query =
[
COMMIT TRANSACTION
]
IF NOT HExecuteQuery(sdrTransactionStart) THEN
Trace(HErrorInfo())
END
sdrSavePoint is Data Source
IF NOT HExecuteSQLQuery(sdrSavePoint, "SAVEPOINT monPoint") THEN
Trace(HErrorInfo())
END
IF NOT HExecuteQuery(sdr) THEN
Trace(HErrorInfo())
END
sdrRollbackSavePoint is Data Source
IF NOT HExecuteSQLQuery(sdrRollbackSavePoint, "ROLLBACK TO SAVEPOINT monPoint") THEN
Trace(HErrorInfo())
END
let sdr2 is SQL Query =
[
INSERT INTO client
VALUES (10, 120), (11,122)
]
IF NOT HExecuteQuery(sdr2) THEN
Trace(HErrorInfo())
END
IF NOT HExecuteQuery(sdrTransactionFin) THEN
Trace(HErrorInfo())
END
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|