PB Transactions

Boboss99 Messages postés 54 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 30 juin 2004 - 23 mai 2003 à 12:04
quickaboy Messages postés 7 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 2 mai 2005 - 17 juil. 2003 à 18:14
Bonjour,
je fais actuellement un programme VB en connexion avec SQL-Server
mon problème est que j'aimerai(si c possible bien sur) dans une transaction insérer 2 enregistements(A et B) dans 2 tables différentes.
en mettant dans l'enregistrement B l'identifiant de l'enregistrement A

ou les 2 insertions se font, ou aucune ....
voici un petit exemple que je test mais ca ne marche pas, je n'arrive pas a faire le select car la transaction principale n'est pas finit je pense

Dim ConnexionBD as new ADODB.Connection
Dim Record as neaw ADODB.Recordset
init ConnectionBD .....
ConnexionBD.Execute ("Begin Transaction toto")
ConnexionBD.Execute ("Begin Transaction titi")
ConnexionBD.Execute ("Insert into table1(nom) values ('bonjour')")
ConnexionBD.Execute ("Commit Transaction titi")
set Record = ConnexionBD.Execute ("Select id from table1 where nom='bonjour'")
ConnexionBD.Execute ("insert into table2 (date,nom) values ('10/10/2000','" & Record![nom]) & "')")
ConnexionBD.Execute ("Commit Transaction toto")

est-ce possible ??? qq à une idée ??? ou à été confronté au même pb ???
merci beaucoup a tout ceux qui pourront m'aider ca serait super sympa top méga cool génial

1 réponse

quickaboy Messages postés 7 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 2 mai 2005
17 juil. 2003 à 18:14
Salut,
Tout d'abord je te conseille d'utiliser les utilitaires fournis dans VB .NET (si c'est celui que tu utilises ...) pour les connections à un serveur SQL. Ils prennent tout en compte y compris les drivers nécessaires.
Tu peux faire par exemple :

dim connSQL as sqlconnection() = new sqlconnection()

connSQL.ConnectionString = "data source=" & MonServerSQL.ToString & ";initial catalog=" & MaBaseDeDonnéesSQL.ToString & ";persist security info=False;user id=sa;packet size=4096;workstation id=localhost;"
connSQL.Open()
...
connSQL.Close()

Pour ce qui est des transactions, il en est de même :

dim mytransact as sqltransaction() = connSQL.BeginTransaction(IsolationLevel.Serializable)

dans laquelle le IsolationLevel.Serializable est le paramètre de sécurité de ta transaction ... (voir infos ailleurs).
et tu peux "committer" par mytransact.Commit()
et rollbacker par mytransact.RollBack()

:question) :question) Quickaboy, el debutante !
:question) :question)
0
Rejoignez-nous