小弟用企业管理器写了某简单存储过程(学习中……)
create proc test @t1 varchar(50),@t2varchar(50)
as
insert into table1 values (@t1,@t2)
go
检查没问题
可是我不懂用daoquery该怎么运行这个存储过程,请高手指教,谢谢!
最好能写详细一点,谢谢!

解决方案 »

  1.   

    ADOQuery1.SQL.Add('exec test'); 把所要执行的SQL语句添加进去
    ADOQuery1.ExecSQL;
      

  2.   

    你直接用ADOStoredProc1 多好呀,
         with ADOStoredProc1 do
         begin
          procedureName='test ';
          Parameters.ParamByName('t1').Value:=值1;
          Parameters.ParamByName('t2').Value:=值1;
          ExecProc;
         end;
    这个多好。
      

  3.   

    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('exec test ' + 参数1 + ' ' + 参数2);
      execsql;
    end;
      

  4.   

    楼上的有误
    推荐ADOStoredProc1
         with ADOStoredProc1 do
         begin
          procedureName='test ';
          Parameters.ParamByName('@t1').Value:=值1;
          Parameters.ParamByName('@t2').Value:=值1;
          ExecProc;
          if Parameters.ParamByName('@returnvalue').value =-1 then showmessage('存储过程出错');//如果存储过程出错它的返回值为-1,如果成功而你又不在存储过程中return值那么默认为0,如果指定了就是你指定的成功的值
         end;另外你的存储过程应该这样写
    create proc test @t1 varchar(50),@t2varchar(50)
    as
    begin
    insert into table1 values (@t1,@t2)
    if @@error > 0  goto error_insert;
    return 0 --返回其他值也可(必须整型 ),程序中根据@returnvalue来取的此值,show出来看看就知道了
    end
    error_insert:
    return -1 --返回其他值也可(必须整型 ),程序中根据@returnvalue来取的此值,show出来看看就知道了
    goadoquery1的写法
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add('exec test ' +QuotedStr( 参数1) + ', ' +QuotedStr( 参数2));
      execsql;
    end;
      

  5.   

    用adoquery或者用ADOStoredProc控件都可以实现
      

  6.   

    用adostoredproc不行啊!用adoquery就可以,adostoredproc应该怎么写啊?