在ADO当然不能用SQL语句来实现了!
你在DataModule里面放一个ADOConnetion,在放一个ADOStoredProc,设置好他们的属性,  ProcName:='存储过程名称';
  ADOStoredProc.Active := False;ADOStoredProc.ProcedureName := ProcName;
  ADOStoredProc.Parameters.Clear ;ADOStoredProc.Parameters.Refresh ;
  ADOStoredProc.Parameters.ParamValues['STARTDATE'] :=StartDate; //传入参数    ADOStoredProc.Prepared:=True;ADOStoredProc.ExecProc ;//执行存储过程
  String:=ADOStoredProc.Parameters.ParamValues[返回参数];

解决方案 »

  1.   

    建议看以下文章
    http://www.ccidnet.com/tech/guide/2001/08/27/58_3084.html
      

  2.   

    很感谢各位大虾的帮助,我在别的板块中看到有关的存储过程的执行过程,也是使用adoquery的组件实现的....sql.add('exec myprocedure'),看他们讨论的样子是行的通的,但是我在测试的时候却总是提示驱动不支持该语句,我在sql plus在刚才明明是执行通过了(execute myprocedure),可是过一会在试的时候居然说是未知命令,弄得我云头转向,最后只好放弃了,采用肥客户端了,唉!,另我的存储过程有错误,现在已经修改好了.
      

  3.   

    我刚才用adostoredproc测试通过了,但是我想既然ado只是一个接口罢了,它的sql语句交给下一层去处理,它自己并不知道是否支持该语句,我想oracle肯定支持execute吧,还是adoquery没有创建象adostoreproc的那样的接口呢?那到底错误出现在那里呢?请各位大虾指点迷津.
      

  4.   

    函数是可以用ado调的,过程我还没实过,要不你把存储过程改为函数就可以了 
       Dim My_PURVCheckRs As Recordset
        Set My_PURVCheckRs = New Recordset
        My_PURVCheckRs.Open "select dt_purvcheck('sdsadf','asfsadf') as PURV from dual", GB_CN, adOpenStatic, adLockOptimistic
        MyFc_UserPURV = My_PURVCheckRs("PURV")
      

  5.   

    vb我看得困难,我的是意思是能不能用sql语句来执行一个存储过程呢?希望各位大虾继续关注!