誓不相隔卿:关于ADOQuery.filter的问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 16:48:58
procedure Txt.DBGrid1DblClick(Sender: TObject);
var x:string;
begin
if application.FindComponent('xx')=nil then
application.CreateForm(Txx,xx);
x:=ADOQUERY1.FIELDBYNAME('系统名称').ASSTRING;
xx.ADOQuery1.Filtered:=false;
xx.ADOQuery1.filter:='系统名称='+x;
xx.ADOQuery1.filtered:=true;

xx.Caption:=x;
xx.showmodal;

end;
运行始终报“参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。”
但此方法在另外一处同样适用却能达到效果,不知道为什么。人都快疯掉了,还请高手指教!!
同样一处的代码为:
procedure Tsz_wxsbxx.DBGrid1DblClick(Sender: TObject);
var b:string;

begin
if application.FindComponent('xt')=nil then
application.CreateForm(Txt,xt);
b:=ADOQUERY1.FIELDBYNAME('整机机号').ASSTRING;
xt.ADOQuery1.filter:='整机机号='+b;
xt.ADOQuery1.filtered:=true;

xt.Caption:=b;
xt.showmodal;
end;
没有问题就是实现根据双击的内容后能够对新窗口的数据进行过滤!!

我觉得不是代码的问题,应该是你用的ado组件里面SQL语句的参数弄错了。