interbase的存储过程中如果想返回多条结果应该怎么办?
下面的例子只能返回最后一条结果,我想让他返回所有的结果集,应该怎么写。
CREATE PROCEDURE SP_GETYEARDATA (
AYEAR INTEGER)
RETURNS (
ADATE DATE,
AMONEY DECIMAL(15,2),
ATYPE SMALLINT,
STYPE CHAR(100),
ADESC VARCHAR(260) CHARACTER SET GB_2312)
AS
DECLARE VARIABLE APAYOUTTYPE INTEGER;
DECLARE VARIABLE AINCOMETYPE INTEGER;
begin
for
select SR_DATE, SR_MONEY, SR_TYPE, SR_INCOMETYPE, SR_PAYOUTTYPE, SR_DESC
from SPENDINGRECORD
where extract(year from SR_DATE)=:AYEAR
into :adate, :amoney, :atype, :aincometype, :apayouttype, :ADESC
do begin
if (atype=0) then
begin
select inctype from incometype where incometypeid=:aincometype
into :STYPE;
end
else
begin
select paytype from payouttype where payouttypeid=:APAYOUTTYPE
into :STYPE;
end
end
suspend;
end