Comment effectuer un blocage d`enregistrements en transaction sur une base tierce ?

Publié le par softdev

wd16
 
La méthode à utiliser pour effectuer des blocage en transaction va être dépendante du type de programmation :

Cas 1 : programmation avec des fonctions SQL* :

Le blocage va être fait par un appel de la fonction "SQLBloque()", dans une transaction.

Le code est du type :

SQLConnecte(...)
SQLTransaction(SQL.Début) // Sans préciser de connexion
SQLBloque(SELECT * FROM Table WHERE ...)
SQLTransaction(SQL.Fin) // COMMIT

Attention, la connexion dans ce cas est obligatoirement faite via la fonction "SQLConnecte()". Une connexion faite dans l`analyse, ou avec "HOuvreConnexion()" ne peut pas être utilisée par la fonction "SQLBloque()".

Cas 2 : programmation avec des fonctions H* :

Le blocage peut être fait par une requête SQL qui doit contenir les ordres de blocages spécifiques à la base.

Le code est du type :

Req est une source de données
SQLTransaction(SQL.Début, "NomConnexion")
HExecuteRequeteSQL(Req, "NomConnexion", hRequeteSansCorrection, "SELECT * FROM ...")
SQLTransaction(SQL.Fin, "NomConnexion") // COMMIT
La connexion "NomConnexion" peut être la connexion décrite dans l`analyse, ou une connexion donnée par programmation avec "HDécritConnexion()" et/ou "HOuvreConnexion()".

Attention, la requête donnée à la fonction "HExecuteRequeteSQL()" doit contenir les instructions de blocages relatives à la base.
Notez que la fonction "SQLTransaction()" est l`unique fonction dont le nom commence par "SQL", et qui peut être utilisée dans un traitement utilisant les fonctions H*.
L`option hBlocageEcriture des fonctions HLitPremier, HLitSuivant est également prise en compte en accès natif.

 

Source: Freedev

Publié dans SQL server

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article