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 找不到
我晕了,也找了资料,不知道错误在哪里,大家指导小弟下,谢谢
@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 找不到
我晕了,也找了资料,不知道错误在哪里,大家指导小弟下,谢谢
最简单的,在设计期的属性编辑器里选择存储过程名称后继续选择Parameters就可以了.
var
Pro_Panel:TADOStoredProc;
begin
Pro_Panel:=TADOStoredProc.Create(nil);
try
Pro_Panel.Connection:=myconn;//你的连接 Pro_Panel.ProcedureName:='ProcedureName;1';
Pro_Panel.Parameters.CreateParameter('@RETURN_VALUE',ftInteger,pdReturnValue,0,Unassigned);
Pro_Panel.Parameters.CreateParameter('@Dept_No',ftString,pdInput,12,Unassigned);
Pro_Panel.Parameters.CreateParameter('@Object_Name',ftString,pdInput,20,Unassigned);
Pro_Panel.Parameters.CreateParameter('@Result',ftstring,pdInputOutput,30,Unassigned);
Pro_Panel.Close;
Pro_Panel.Parameters.ParamByName('@Dept_No').Value:=Dept_No;
Pro_Panel.Parameters.ParamByName('@Result').Value:=0;
Pro_Panel.Parameters.ParamByName('@Object_Name').Value:=object_Name;
Pro_Panel.ExecProc;
Result:=Pro_Panel.Parameters.ParamValues['@Result'];
finally
Pro_Panel.Free;
end;
end;
上面的代码可以的,在加个Parameters.clear就可以了,谢谢你们,我分数不多,以后多给你们,谢谢