ALTER  proc sp_Login
@name varchar(100)
as
select * from login where name=@name以上是我的在MS SQL SERVER2000里的存储过程,在查询分析器里测试过是可以的
DataModule2.adoPro1.Close;
DataModule2.adoPro1.ProcedureName:='sp_Login';
DataModule2.adoPro1.Parameters.ParamByName('@name').Value:='888';
DataModule2.adoPro1.Prepared:=true;DataModule2.adoPro1.Open;
我用ADOStoredProc1 调用,就是上面的代码,结果老说我@name 找不到
我晕了,也找了资料,不知道错误在哪里,大家指导小弟下,谢谢

解决方案 »

  1.   

    DataModule2.adoPro1.Parameters.ParamByName('name').Value:='888';
      

  2.   

    我去掉了@还是出现老提示,name  not found  
    如果我用静态的设置@name 为string类型,直为888   是可以的,那说明存储过程是通的
    郁闷死了,大家帮帮忙
      

  3.   

    DataModule2.adoPro1.ProcedureName:='sp_login';
    //下面使用简单存储过程测试
    with DataModule2.adoPro1 do
    begin
      Close;
      
      Parameters.Clear;
      Parameters.Refresh;
      Parameters.ParamByName('@name').Value:=edit1.Text;
      Prepared:=true;
      open;
    我加了句 Parameters.Refresh; 可以运行了,可以又出现个问题,就是我按第2下的时候就会出错,按第一下是正确执行,不知道大家有没有碰到过,谢谢!
      

  4.   

    self.ADODataSet1.CommandText:='Execute sp_login '''+edit1.text+'''';
    self.ADODataSet1.Open