……
var
NUM:Integer;
……
with ADOStoredProc1 do
begin
ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
Prepared;
ExecProc;
NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
end;错误提示:没有找到参数@Fint;
于是我就吧第一行去掉,直接把ADOStoredProc1 与K999绑定就可以了
疑问:调用存储过程是否一定要绑定的吗?
不能想adoquery那样可以临时赋值应用吗?
如果可以代码要怎么写?
var
NUM:Integer;
……
with ADOStoredProc1 do
begin
ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
Prepared;
ExecProc;
NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
end;错误提示:没有找到参数@Fint;
于是我就吧第一行去掉,直接把ADOStoredProc1 与K999绑定就可以了
疑问:调用存储过程是否一定要绑定的吗?
不能想adoquery那样可以临时赋值应用吗?
如果可以代码要怎么写?
能
在第一行下面加Parameters.Refresh试下
Parameters.ParamByName('@Fint').value:=vFItemClasID;
建议先CLOSE
begin
close;
ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
Parameters.Refresh;
Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
Prepared;
ExecProc;
NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
end;
begin
close;
ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
Parameters.Refresh;
Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
Prepared;
ExecProc;
NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
end;
self.ADOQuery1.Close;
self.ADOQuery1.SQL.Clear;
self.ADOQuery1.SQL.Add('EXEC K999'+‘参数’) ;
ADOQuery1.ExecSQL;
还是不行啊,有谁帮帮我啊,
就是一个简单的掉用存储过程有带参数和返回值的;不让他与TAdoStoreProc绑定而已
begin
close;
ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
Parameters.Refresh;
Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
Parameters.ParamByName('@FFloat').Value := 0;
Prepared;
ExecProc;
NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
end;