这是存储过程最后的结果:
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控件中?

解决方案 »

  1.   

    本人感觉可以和用listview差不多,一个字段一个字段的添加,
      

  2.   

    只知道StoredProc.fieldbyname('物料编码').asstring能得到数据集的值
      

  3.   


    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;