Te copio un ejemplo con flamerobin
SET TERM ^ ;
CREATE PROCEDURE EJEMPLO
RETURNS ( RESULTADO Integer )
AS
BEGIN
select count(*) from LOG_INGRESOS_SALIDAS into :resultado;
suspend;
END^
SET TERM ; ^
En tu caso seria suspend en vez de exit, si devuelve un registro, este funciona, si devuelve mas registro usarías un
for select .... do suspend;
El otro error es que tu procedim. retorna 2 valores pero en select into solo hay uno (falta el valor "lafecha")
Aqui hay algunos ejemplos
http://www.destructor.de/firebird/storedproc.htmSaludos