create or replace procedure thesum(x IN DATE,y IN DATE,suma OUT varchar2,sumb OUT NUMBER,sumc OUT NUMBER)
is
begin
declare
cursor mycur is select XF_STORECODE,sum(XF_AMTSOLD),sum(XF_QTYSOLD) from XF_TRANSSALESITEM where XF_POSTDATE>=x and XF_POSTDATE<=y group BY XF_STORECODE;
nametypa XF_TRANSSALESITEM.XF_STORECODE%type;
nametypb XF_TRANSSALESITEM.XF_AMTSOLD%type;
nametypc XF_TRANSSALESITEM.XF_QTYSOLD%type;
begin
open mycur;
loop
fetch mycur into nametypa,nametypb,nametypc;
exit when mycur%notfound;
if mycur%found then
dbms_output.put_line('读取nama='||nametypb||nametypc);
suma:=nametypa;
sumb:=nametypb;
sumc:=nametypc;
end if;
end loop;
close mycur;
end;
end thesum; 存储过程 使用游标循环读取数据 然后VC++调用 想吧每回循环的值全取出来。 有什么办法嘛. sum=cmmd->Parameters->GetItem("NewNetID")->GetValue();
sum1=(DOUBLE)cmmd->Parameters->GetItem("NewNetID1")->GetValue();
sum2=(DOUBLE)cmmd->Parameters->GetItem("NewNetID2")->GetValue(); 这样读只能读出最后一条数据.
is
begin
declare
cursor mycur is select XF_STORECODE,sum(XF_AMTSOLD),sum(XF_QTYSOLD) from XF_TRANSSALESITEM where XF_POSTDATE>=x and XF_POSTDATE<=y group BY XF_STORECODE;
nametypa XF_TRANSSALESITEM.XF_STORECODE%type;
nametypb XF_TRANSSALESITEM.XF_AMTSOLD%type;
nametypc XF_TRANSSALESITEM.XF_QTYSOLD%type;
begin
open mycur;
loop
fetch mycur into nametypa,nametypb,nametypc;
exit when mycur%notfound;
if mycur%found then
dbms_output.put_line('读取nama='||nametypb||nametypc);
suma:=nametypa;
sumb:=nametypb;
sumc:=nametypc;
end if;
end loop;
close mycur;
end;
end thesum; 存储过程 使用游标循环读取数据 然后VC++调用 想吧每回循环的值全取出来。 有什么办法嘛. sum=cmmd->Parameters->GetItem("NewNetID")->GetValue();
sum1=(DOUBLE)cmmd->Parameters->GetItem("NewNetID1")->GetValue();
sum2=(DOUBLE)cmmd->Parameters->GetItem("NewNetID2")->GetValue(); 这样读只能读出最后一条数据.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货