Bonjour,
Delphi 2007
SQLServer 2005
Voilà mon problème :
Je démarre ma transaction lorsque l'utilisateur clic sur le bouton création
Dans ma transaction j'ai plusieurs phase :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 try Fiche_Principal.Database_Gsm.StartTransaction; except on E:Exception do begin AfficheSedIncident('CLO85 -> ', E.Message, 0, 0); etc.....
dont dans ma 1ère phase je créer une table temporaraire :
Jusqu'ici aucun problème.Mais dans mon traitement j'ouvre une deuxième form
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 try //************* Teste l'existance des différents comptes *************** with (Query_General) do begin close; sql.clear; sql.add('CREATE TABLE ##Temp_Compte'); sql.add(' (CtoNum char (9), '); sql.add(' CtoLbu char (1), '); sql.add(' CtoTyp char (7)) '); if not (prepared) then begin prepare; end; execsql; end; except on E:Exception do begin etc.
qui affiche dans un TDBgrid le contenu de ma requête temporaire
Au niveau de mon showmodal j'active ma query (Select * from @@temp_compte). Et là rien ne s'affiche, mon programme se bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 .... Fiche_ListeCompte := TFiche_ListeCompte.Create(Fiche_Cloture); Fiche_ListeCompte.Left := Fiche_Cloture.Left + ((Fiche_Cloture.Width - Fiche_ListeCompte.Width) div 2); Fiche_ListeCompte.Top := Fiche_Cloture.Top + ((Fiche_Cloture.Height - Fiche_ListeCompte.Height) div 2); Fiche_ListeCompte.ShowModal; Fiche_ListeCompte.Free; ...
Donc mon souci c'est que lorsque j'ouvre ma 2ème form il créer un nouveau thread et j'ai l'impression que ma transaction ne suit plus (Lors de mes différents tests, lorsque je supprime le StartTransaction le problème est débloqué).
Pouvez vous m'éclairer car là je suis un peu perdu.
L'isolation de ma base est en READ_COMMITTED_SNAPSHOT ON.
A mon avis, je dois avoir un problème de verrou.
Merçi pour votre aide.
Vajilo
Partager