我需要用存储过程做一些查询,返回结果集。在DELPHI中,不用第三方控件如何调用存储过程返回结果集。1、有返回结果集的存储过程(包)怎么写; 
2、在DELPHI中怎样调用;最好有实例,先谢了分不够可以到这里接分
http://expert.csdn.net/Expert/topic/1965/1965375.xml?temp=.7913935

解决方案 »

  1.   

    忘了说,我用的是ORACLE数据库
      

  2.   

    1、在存储过程的最后加上select *  from yourTable就可以了
    2、SQL.Add('exec yourStoredProcName');
       ExecSQL;
      

  3.   

    把存储过程写到ORACLE数据库里,然后用StoreProc过程控件在需要时调用该过程。over.
      

  4.   

    一样的,用query,不过应该用open
      

  5.   

    不行!!!
    其实有时非常需要这个功能,vb,sql server可以!
      

  6.   

    这是我在SQL server中应用: 原理应该差不多吧
    with DM.sp_GetPlanChartDate dobegin  //对数据模块中的存储过程控件操作
       Close;
       Parameters.ParamByName('@State').Value := aState;
       Open;
    end;
    Series1.DataSource:= DM.sp_GetPlanChartDate;  // 将存储过程的结果集赋给图表控件
    Series1.YValues.ValueSource:= '设备数量';
    Series1.XLabelsSource:=  '校验日期';
    Series1.Repaint;存储过程: (简化后)
    SELECT COUNT(*) AS   '设备数量', JYDate as  '校验日期'
                   FROM EquipsPlan         
                 WHERE (EquipsPlan.State = @State)
                  Group by JYDate  Order by JYDate
      

  7.   

    oracle没搞过
    估计跟server差不多吧
      

  8.   

    谢谢大家热心,不过ORACLE与SQL SERVER差别真的很大。原理也不一样,ORACLE的返回的结果集要放在包里的。
      

  9.   

    把查询结果放在临时表中,用open打开看看可以嘛
      

  10.   

    clientdataset1.close;
    clientdataset1.commandtext:='存储过程名 @zx='''+zx+'''';
    clientdataset1.open;
      

  11.   

    SQL.Add('exec 存储过程名');
    ExecSQL;
      

  12.   

    我要的是ORACEL,不是SQL SERVER,Thanks
      

  13.   

    在oracel中返回结果集,不太好办,我就是用的临时表