[Firebird] Procedure stockee via delphi
Bonjour a tous,
je suis pas tres content du titre :calim2:
je "pilote" Firebird 2.1 depuis Delphi7 en utilisant les composants UIB.
J'ai une PS du type :
Code:
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 |
Le pb ne porte pas sur la PS (l'execution via IBExpert fonctionne parfaitement), non son execution via les UIBs
Normalement l'appel de la procedure se fait via :
Code:
Query_Firebird.BuildStoredProc('PS_RECUP_DATA', False);
et
Code:
Query_Firebird.Execute;
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 :
Citation:
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 :
Code:
Trans_Firebird.Options := [tpConsistency, tpWait, tpWrite];
Je pense que le pb est a ce niveau, mais je ne vois pas quoi faire
a+
olivier