我的存储过程的代码是这样的:
create procedure aaa
@aa char(20)
as
select * from 表名 where cuser_name=@aa
GO在Delphi中这样写的:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Adostoredproc1 do
begin
active:=false;
parameters.ParamByName('@aa').value:='aaa';
prepared;
active:=true;
end;
但是会提示 'Parameter '@aa' not found'的错误!如果我在设计器中修改parameters中@aa的value之后,在运行,就没有错误了。其实,在设计期间根本就没有必要修改@aa的value值,但就是出错!不知为何,请大侠多帮助!
create procedure aaa
@aa char(20)
as
select * from 表名 where cuser_name=@aa
GO在Delphi中这样写的:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Adostoredproc1 do
begin
active:=false;
parameters.ParamByName('@aa').value:='aaa';
prepared;
active:=true;
end;
但是会提示 'Parameter '@aa' not found'的错误!如果我在设计器中修改parameters中@aa的value之后,在运行,就没有错误了。其实,在设计期间根本就没有必要修改@aa的value值,但就是出错!不知为何,请大侠多帮助!
解决方案 »
- 用Delphi做大型项目如何构架?
- {$IFDEF UNICODE}有没有简单一点的表达方式,像C语言那样
- 在SQLSERVER里写了一个带输出参数的储存过程,怎样把参数的带返回到程序里?
- TFileListBox不能显示长文件名
- toolbar,datepickerbox
- 大家好,请教各位表与表之间相互关联的问题~~~~~~~~(分数可以加)
- Delphi7中怎么没有ServerSocket控件?是不是被别的什么代替了?
- 请教:怎么把我的程序注册到win9x添加/删除程序里?
- 如何实现像OUTLOOK中写EMAIL时的图文并存?
- 各位高手请注意:一个有挑战性的问题(如何实现屏幕过滤?)
- QuickRep中能否象预览一样放大缩小打印
- 如何用blockwrite在文件的指定位置写入新的数据阿?
///改为:
prepare;
parameters.ParamByName('@aa').value:='aaa';
with MyDM.ADOSP do
begin
ProcedureName := 'sp_spaceused'; // 设置存储过程名
Close; // 关闭以前的数据集
Parameters.Clear; // 清空以前的参数
Parameters.CreateParameter('@objname',ftString,pdInput,100,'table1'); //生成新的参数
Open;// 或者ExecProc,不返回数据集
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with Adostoredproc1 do
begin
active:=false;
////关注 Refresh;
parameters.ParamByName('@aa').value:='aaa';
prepared;
active:=true;
end;
学习中。
begin
with Adostoredproc1 do
begin
active:=false;
////关注 parameters.Refresh;
parameters.ParamByName('@aa').value:='aaa';
prepared;
active:=true;
end;
要不可以先clear参数,再create,然后再赋值也可以.
procedure TForm1.Button1Click(Sender: TObject);
begin
with Adostoredproc1 do
begin
active:=false;
parameters.ParamByName('aa').value:='aaa';
prepared;
active:=true;
end;
with dm.StoredProc1 do
begin
Close;
Params.Clear;
Open;
ParamByName('@aa').AsString := 'aaa';
close;
Open;
end;
或者你动态建