En Firebird/Interbase lo que podes hacer es crear procedimientos almacenados que te regresen multiples filas, con la ventaja de poder utilizar los procedimientos en consultas SQL.
Por ejemplo
Código:
CREATE PROCEDURE Miprocedure(param1 type1, param2 type2)
returns(campo1 type1,
campo2 type2
etc.)
begin
FOR
SELECT campo1, campo2
FROM tabla A
WHERE A.campo1 = param1 and A.campo2 = param2
INTO :campo1, campo2
BEGIN
suspend;
END
end
Ejemplo de uso
Código:
SELECT campo1, campo2
FROM MiProcedure(:parametro1, :parametro2)