Gracias Startkill, tenía algo parecido pero no funcionaba, asi que no me quedo otra que mostrar los resultados como campos de returns y pude comprobar u par de fallitas quedando de la siguiente manera:
Código SQL
[-]
CREATE PROCEDURE AA02
AS
DECLARE VARIABLE XCODIGO CHAR(3);
DECLARE VARIABLE XCOD2 CHAR(3);
DECLARE VARIABLE XNUMBER INTEGER;
begin
for select fcodigo, fnumber from aa1 into :xcodigo, :xnumber do begin
xcod2='';
select fcodigo from aa2 where fcodigo=:xcodigo into :xcod2;
if (:xcod2 = '' ) then
insert into aa2 (fcodigo, fnumber) values (:XCODIGO, :xnumber);
else
update aa2 set fnumber=:xnumber where fcodigo=:xcodigo;
suspend;
end
end
Cuando no encuentra te devuelve NULL y al preguntar:
Código SQL
[-]
if(:xcod2<>:xcodigo) then
no entraba, y el suspend debe ir dentro del begin-end.
Saludos,
Jorge.
PD:Puedes ayudarme con el siguiente hilo:
http://www.clubdelphi.com/foros/showthread.php?t=19537