这是存储过程最后的结果:
SELECT lxqx..fb_pjsx.pjbm AS 物料编码,
lxqx..fb_pjsx.pjmc AS 物料名称,
lxqx..fb_pjsx.dw AS 单位,
##StatQc.结存数量 AS 期初数量,
##StatQz.进货数量,##StatQz.销售数量,
##StatQz.退货数量,
##StatQc.结存数量+##StatQz.结存数量 AS 期末结存
from lxqx..fb_pjsx FULL OUTER JOIN ##StatQc ON fb_pjsx.pjbm= ##StatQc.pjbm
FULL OUTER JOIN ##StatQz ON fb_pjsx.pjbm=##StatQz.pjbm
WHERE not(##StatQc.结存数量=0 and ##StatQz.进货数量=0 and ##StatQz.销售数量=0 and ##StatQz.退货数量=0 and (##StatQc.结存数量+##StatQz.结存数量)=0)用StoredProc执行此存储过程,请问,如何将他返回到Delphi 的DBGrid控件中?
SELECT lxqx..fb_pjsx.pjbm AS 物料编码,
lxqx..fb_pjsx.pjmc AS 物料名称,
lxqx..fb_pjsx.dw AS 单位,
##StatQc.结存数量 AS 期初数量,
##StatQz.进货数量,##StatQz.销售数量,
##StatQz.退货数量,
##StatQc.结存数量+##StatQz.结存数量 AS 期末结存
from lxqx..fb_pjsx FULL OUTER JOIN ##StatQc ON fb_pjsx.pjbm= ##StatQc.pjbm
FULL OUTER JOIN ##StatQz ON fb_pjsx.pjbm=##StatQz.pjbm
WHERE not(##StatQc.结存数量=0 and ##StatQz.进货数量=0 and ##StatQz.销售数量=0 and ##StatQz.退货数量=0 and (##StatQc.结存数量+##StatQz.结存数量)=0)用StoredProc执行此存储过程,请问,如何将他返回到Delphi 的DBGrid控件中?
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
create or replace PROCEDURE get(p_rc OUT pkg_test.myrctype)
IS
sqlstr VARCHAR2 (50);
BEGIN
sqlstr:='select * from aa';
OPEN p_rc FOR sqlstr;
END get;
/ 在delphi中:
with ADOStoredProc1 do
begin
Close;
procedurename:='get';
Parameters.CreateParameter('p_id',ftstring,Pdinput,20,'1');
parameters[0].Name:='p_id';
Parameters[0].Value:='3';
execproc;
Open;
end;