Transaction Sybase

Résolu
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 - 6 déc. 2005 à 16:17
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 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


Merci d'avance pour votre aide,

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
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.

Merci beaucoup pour votre aide !!!
0
cs_tulesais Messages postés 175 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 11 avril 2013 2
8 déc. 2005 à 09:01
Excellent !!!

pourquoi n'y avais je pas pensé ??? :-)))

Merci beaucoup Jack !!! You are the Ultimate BOSS !!!
0
Rejoignez-nous