为何在DELPHI不能动态给ADOStoredProc1赋过存储过程名。
如我有一个过程spro1(mssql) ,数据库名为DB.由于要实现在不同的数据库之间转换。
我给spro1.ProcedureName 动态赋值 为db.dbo.spro1 时。就是提示我的过程中的参数不存在。
原因何在,不会是delphi 的bug 吧?

解决方案 »

  1.   

    代码如下:
    with adosp1 do
    begin
        ProcedureName := db.dbo.sp1;
        Parameters[0].Value := 'test1';
        Parameters[1].Value := 2;
        Parameters[2].Value := 'test2';
        ExecProc;
    end;
    adosp1.connection 有正常设置,请问楼上的月友,代码错在何处.
      

  2.   

    with adosp1 do
    begin
        ProcedureName := 'db.dbo.sp1';
        Parameters[0].Value := 'test1';
        Parameters[1].Value := 2;
        Parameters[2].Value := 'test2';
        ExecProc;
    end;
    adosp1.connection 有正常设置,请问楼上的月友,代码错在何处.
      

  3.   

    没关系,重新设置过程名后,调用一下Parameters.Refresh,就OK了.
      

  4.   

    with adosp1 do
    begin
        ProcedureName := db.dbo.sp1;
        Parameters.Refresh;
        Parameters[0].Value := 'test1';
        Parameters[1].Value := 2;
        Parameters[2].Value := 'test2';
        ExecProc;
    end;
      

  5.   

    有时用adoquery直接执行存储过程也挺 好的。
    adoquery.sql.add('exec pro1');