Database1.Connected := true;
  StoredProc1.StoredProcName := 'sp_attach_db';
  StoredProc1.ParamByName('@dbname').asstring := 'test3';
  StoredProc1.ParamByName('@filename1').AsString := 'd:\myDB.mdf';
  StoredProc1.ParamByName('@filename2').AsString := 'd:\myDB.ldf';
StoredProc1.Prepare;
StoredProc1.ExecProc;
StoredProc1.UnPrepare;提示: parameter '@dbname' not found.
请验证一下,谢谢。

解决方案 »

  1.   

    调用前,首先create参数
    StoredProc1.params.createparam('@dbname',ftString,ftInput,100,'test3');//其他一样
    或者你可以用query,直接
    query1.sql.add('sp_attach_db ''test3'',''d:\myDB.mdf'',''d:\myDB.ldf''');
    query1.execsql;
      

  2.   

    ADOStoredProc1.close;
    ADOStoredProc1.parameters.parambyname('@dwmc').value:='某某单位'; 
    ADOStoredProc1.prepared:=true;
    ADOStoredProc1.open;把上边的代码放在一个button的点击事件里面
      

  3.   

    谢谢,
    StoredProc1.params.createparam('@dbname',ftString,ftInput,100,'test3');
    通过;
    不过用query提示: 
    Token not found. Token:EXEC. line number:1.
    query1.sql.add('exec sp_attach_db ''test3'',''d:\myDB.mdf'',''d:\myDB.ldf''');
    query1.execsql;
    也一样,请再帮一下。
      

  4.   

    数据库联好后直接
    query1.sql.add('EXECUTE sp_attach_db '''+test3+'''');
    query1.execsql;
      

  5.   

    同样的错误:Token not found. Token:EXEC. line number:1.
      

  6.   

    在设计期,你查看一下存储过程的参数,如果存储过程没有问题,在参数列表中应该有你的参数,然后关闭参数列表,保存一下,再运行应该就可以找到这个参数了!
    如果动态的设置StoredProcName属性,你在给参数赋值之前最好加一句
    StoredProc1.Prepared:=true;
    以上仅供参考.