Ich spiele gerade mit der XE3 Trial und DBX.
Mit IBExpert habe ich eine Stored Proc erstellt:
Code:
CREATE OR ALTER procedure GET_PERSONS_FOR_CONTRACT (
CONTRACT_ID integer)
returns (
PERSON_ID integer,
FIRSTNAME varchar(20),
LASTNAME varchar(20),
IN_CONTRACT smallint)
as
declare variable C integer;
begin
for select p.ID, p.FIRSTNAME, p.LASTNAME
from PERSONS p
where p.ACTIVATE = 1
order by p.ID
into :PERSON_ID, :FIRSTNAME, :LASTNAME
do
for select count(*)
from FLYS f
where (f.CONTRACT_ID = :CONTRACT_ID) and
(f.PERSON_ID = :PERSON_ID)
into :C
do
begin
if (C > 0) then
IN_CONTRACT = 1;
else
IN_CONTRACT = 0;
suspend;
end
end
Im IBExpert lässt sie sich ausführen und liefert die korrekten Ergebnisse.
Zitat:
PERSON_ID FIRSTNAME LASTNAME IN_CONTRACT
1 André Stahl 1
2 Bernd Stahl 0
3 Ina Voigt 0
4 Paul Brenner 0
5 Denise Hirtz 0
6 Ronald Hirtz 0
(Contract_ID = 1)
In einem DataModul habe ich einer SQLStoredProc die Proc zugewiesen.
Beim Setzen von Active erhalte ich den Fehler:
"SQLStoredProcXyz: Cursor nicht aus Abfrage zurückgekehrt"
Unter Params habe ich wieder Contract_ID = 1 zugewiesen.
Kann jemand helfen?