cs_tulesais
Messages postés175Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 avril 2013
-
6 déc. 2005 à 16:17
cs_tulesais
Messages postés175Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 avril 2013
-
8 déc. 2005 à 09:01
Bonjour,
j'utilise une connection ADODB vers un Serveur Sybase.
Je souhaiterais savoir s'il est possible d'utiliser des Transactions Imbriquées
et si oui, comment faire ... :-(
j'utilise les commandes ci-dessous pour traiter une transaction. Cela fonctionne très bien mais je souhaiterais pouvoir traiter une seconde transaction.
Ado_Travail.Execute "begin tran" ' Début de la transaction
et
Ado_Travail.Execute "commit tran" ' Fin de la Transaction
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 déc. 2005 à 19:31
Salut
Il ne peut pas y avoir plusieurs transactions, ce n'est pas possible.
Une transaction permet de gérer les requètes à la suite en utilisant un buffer, sans réécrire directement les tables, et donc de pouvoir revoquer la transaction, donc de pouvoir revenir en arrière sur toutes les requètes exécutées depuis de Commit.
A ma connaissance, il n'existe pas de Transaction multiples.
La seule chose que tu puisses faire, c'est d'ouvrir une deuxième connexion sur ta DB.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 déc. 2005 à 21:03
Salut
Si tu utilises ADODB, il te suffit de faire :
DB As ADODB.Connection
Set DB = New ADODB.Connection
DB.ConnectionString = "Provider=..."
DB.Open
DB.BeginTrans
... tes requètes SQL
DB.CommitTrans
...
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_tulesais
Messages postés175Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention11 avril 20132 7 déc. 2005 à 08:34
Bonjour Jack !
merci beaucoup pour ta réponse mais ta solution comme la mienne, ne gère qu'une seule transaction !
Ado.Execute "begin tran"
ou
Ado.BeginTrans
et
Ado.Execute "commit tran"
ou
Ado.CommitTrans
Y aurait il un moyen de gérer une seconde transaction (non imbriquée) ?
j'ai essayé de donner un nom aux transaction
(
ado.Execute "commit tran Transaction_une"
et
ado.Execute "commit tran Transaction_Deux"
)
mais cela ne fonctionne pas ! c'est comme s'il n'y avait qu'une seule transaction lors d'un commit.