Hola.
Entonces puedes utilizar un procedimiento almacenado.
Código:
SET TERM ^ ;
CREATE PROCEDURE LISTA
RETURNS (LINEA INTEGER, NOMBRE VARCHAR(50))
AS
begin
LINEA = 0;
for select NOMBRE
from TABLA
order by NOMBRE
into :NOMBRE
do begin
LINEA = LINEA + 1;
suspend;
end
end
^
SET TERM ; ^
En Delphi, lo recuperas con una consulta normal que haga : select * from LISTA
En esta Web puedes encontrar más información sobre Firebird y procedimientos almacenados
http://firebird.com.mx.
Aunque naturalmente la información más completa la encontrarás en la documentación del producto :
http://www.ibphoenix.com/downloads/60All.zip
Saludos.