在SQL中执行exec dbo.STLogin  @s_operator='用户',@s_password='密码',@s_computer='服务器名',@s_program='000'能成功。但是在delphi中不知怎么去执行,用adoconnection连接,有adoquery,ADOStoredProc1,edit1,edit2,button1,等控件,是想按下button1执行上面的存储过程,其中,@s_operator取edit1输入的内容,s_password取edit2输入的内容。怎么写这段代码?

解决方案 »

  1.   

    ADOStoredProc1和query控件类似的,有参数 的话需要先为参数赋值再open(或exec)
      

  2.   

    ADOStoredProc1的,connection,DataSoutce,ProcedureName属性设置好,然后在button1中写代码
    ADOStoredProc1.close;
    ADOStoredProc1.procedureName:='存储过程名字';
    ADOStoredProc1.parameters.Clear;
      定义变量ADOStoredProc1.Parameters.CreateParameter('@s_operator,ftString,pdInput,12,'用户');
      继续定义变量
    ADOStoredProc1.Prepared:=true;
    ADOStoredProc1.ExecProc;
    就是这样的
      

  3.   

    跟普通的ADO用法一样。
    例:
      with AdoQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('exec xx');
        ExecSQL;
      end;
      

  4.   

    ADOStoredProc1可以返回值
    query不可以返回值
      

  5.   

    我喜欢用QUREY来执行,感觉不错,如果有返回值的,在存储过程的最后加上SELECT语句,open一下就出来了!