Bonjour a tous,
je suis pas tres content du titre
je "pilote" Firebird 2.1 depuis Delphi7 en utilisant les composants UIB.
J'ai une PS du type :
Le pb ne porte pas sur la PS (l'execution via IBExpert fonctionne parfaitement), non son execution via les UIBs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 FOR select * from Table DO Begin IF qq THEN Begin UPDATE OR INSERT INTO Table1 ( Table1.Champ1, Table1.Champ2) VALUES (Table.Champs1, une_valeur); END Suspend; END
Normalement l'appel de la procedure se fait via :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part Query_Firebird.BuildStoredProc('PS_RECUP_DATA', False);
Or lorsque je veux lire les infos qui sorte avec le SUSPEND dans les variables de sortie, la premiere ligne est parfaitement lu, mais a la suivant (Query_Firebird.Next) je recois un message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Query_Firebird.Execute;
Request synchronisation error
unsucceful execution caused by system error that does not preclude successful execution of subsequent statements
error code 44
J'ai essaye en mettant true au lieu de false (Query_Firebird.BuildStoredProc('PS_RECUP_DATA', True) et en laissant
Query_Firebird.Execute en lieu et place de Query_Firebird.Open;
Dans ce cas je recupere les infos mais la mise a jour des tables ne s'effectue pas.
Le parametres de tansaction sont a :
Je pense que le pb est a ce niveau, mais je ne vois pas quoi faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part Trans_Firebird.Options := [tpConsistency, tpWait, tpWrite];
a+
olivier
Partager