Quelqu'un saurait-il ce qui cloche dans le code suivant, pourtant
simple ?
sReq = "BEGIN TRANSACTION TARIFS"
SI PAS HExécuteRequêteSQL("REQ1",MaConnexionSQL,hRequêteSansCorrection,sReq) ALORS
VersPressePapier(HErreurInfo())
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration("REQ1")
bOK=Faux
SI bOK ALORS
sReq = "COMMIT TRANSACTION TARIFS"
SI PAS HExécuteRequêteSQL("REQ1",MaConnexionSQL,hRequêteSansCorrection,sReq) ALORS
VersPressePapier(HErreurInfo())
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration("REQ1")
SINON
sReq = "ROLLBACK TRANSACTION TARIFS"
SI PAS HExécuteRequêteSQL("REQ1",MaConnexionSQL,hRequêteSansCorrection,sReq) ALORS
VersPressePapier(HErreurInfo())
Erreur(HErreurInfo())
FIN
HAnnuleDéclaration("REQ1")
FIN
A l'exécution, j'obtiens ce message :
Erreur de l'accès OLE DB.
Numéro d'erreur = 170129
Echec de l'ouverture du fichier.
Détail de l'erreur système :
Description = La requête ROLLBACK TRANSACTION n'a pas de BEGIN
TRANSACTION correspondante.
Source = Microsoft OLE DB Provider for SQL Server
SQL State = 25000
Error Number = -2147467259
Native Error Number = 3903
Encore plus bizarre, si je mets bOK à Vrai, le COMMIT TRANSACTION passe
comme une lettre à la Poste !