我以前用SQL Server时也遇上过,别用这个倒霉的TStoredProc了,直接在一个TQuery中写
'exec ProcedureName Param...'就是了。

解决方案 »

  1.   

    你的StoredProc控件传递的存储过程名传递的是大写的吗
      

  2.   

    StoredProc1.Active:=true;
    改为
    StoredProc1.ExecProc;
    就OK啦。
    Active:=true;和Open的效果是一样的。你的存储过程没有返回数据集,应该用ExecProc
      

  3.   

    用tquery代替TStoredProc
    我从来不用TStoredProc
      

  4.   

    我从来都用TStoredProc,因为它在Server端编译好了,只传参数进去就行了,不用把整个SQL语句提交上去,效率更高一些。好吧,我来试试
      

  5.   

    DepYuka是对的!多谢了!看来,只有返回结果集的Stored Procedure才用StoredProc1.Active:=true;或StoredProc1.Open;没有结果集的要用StoredProc1.ExecProc;而且两种情况要尽量都用StoredProc1.ExecProc;谢谢你们让我明白了一个概念!与大家共勉!