我在窗体中放置了TADOConnection(ADOConnection1)和TADOStoredProc(ADOStoredproc1)两控件,设置好了类对象ADOConnection1的connectionstring相关属性,测试数据库连接成功。将ADOStoredProc1的connection属性值设置为ADOConnection1,但没有指定存储过程的名称procedureName的值。 在下面的代码中:
        ADOStoredproc1.close;
        ADOStoredproc1.procedureName:='pro_xf_tjb;1';  //pro_xf_tjb是我写的存储过程
        ADOStoredproc1.parameters.parambyname('@date_begin').value:=20040101;
        ........    @date_begin是我在存储过程中定义的输入参数。不知怎地,运行程序的老报错:
          “ADOStoredproc1:parameter '@date_begin' not found."
  难道不能在运行时指定要执行的存储过程吗?为什么有这样的错?恳求各位大侠相助,分数不够,再加!

解决方案 »

  1. 这个与@无关,首先确认在你参数列表中是否静态定义了参数@date_begin'?
      


  2. ADOStoredproc1.parameters.parambyname('@date_begin').value:=20040101;
    前最好加一句
    ADOStoredproc1.prepared;
      

  3. parameters.refresh 一下 肯定不错
      

  4. 问题已经得解,我现在是用TADOCommand控件调用存储过程的。但我也试了changefish提供的方法,也获得成功!为了感谢各位大侠的帮助,我给changefish加80分,其余的每人5分。
      

类似问题 »