ParamByName是存取参数用的 没有FileByName,只有FiledByName FiledByName是存取字段用的with FADOQuery do begin Close; SQL.Clear; SQL.Add('select * from Products where pID=''''+Edit1.Text+''''); Open; ProName:=FieldByName('ProductName').asString; end;with FADOQuery do begin Close; SQL.Clear; SQL.Add('select * from Products where pID=:paID'); ParamByName('paID').Value:='001'; Open; end;
ParamByName 根据参数名指定参数with ADOQuery do begin Close; SQL.Clear; SQL.Add('select * from a where names= :a); ParamByName('a).Values := 'w kao' Open; end;上面的等于SQL.Add('select * from a where names= "w kao"');
晕..上面的打错了.. 该是ParamByName('a').Value := 'w kao'
FiledByName是根据字段名取当前记录的值..或赋值with ADOQuery do begin Close; SQL.Clear; SQL.Add('select * from a where names= :a); Open; Showmessage(FieldByName('name').AsString); end;回答的比较白。。希望你能理解= =~
首先谢谢给位了。 既然有: with ADOQuery do begin Close; SQL.Clear; SQL.Add('select * from a where names= :a); ParamByName('a).Values := 'w kao' Open; end;上面的等于SQL.Add('select * from a where names= "w kao"');那为什么不直接用SQL.Add('select * from a where names= "w kao"');这样不是更简单明了。
打个比方with ADOQuery do begin Close; SQL.Clear; SQL.Add('select * from a where ID= :a); ParamByName('a).Values := 1 Open; end;with ADOQuery do begin Close; SQL.Clear; SQL.Add('select * from a where ID= '+IntToStr(1)); Open; end;你觉得哪个好点?
你检索条件越多.. ParamByName的好处越能体现.. SQL.Add('select * from a where ID= :a or id2 =:b or id3 =:c); ParamByName('a').Values := 1; ParamByName('b').Values := 2; ParamByName('c').Values := 3; SQL.Add('select * from a where ID= '+IntToStr(1)+'or id2 ='+IntToStr(2)+......);//后面的实在打不下去了。。太累
没有FileByName,只有FiledByName
FiledByName是存取字段用的with FADOQuery do begin
Close;
SQL.Clear;
SQL.Add('select * from Products where pID=''''+Edit1.Text+'''');
Open;
ProName:=FieldByName('ProductName').asString;
end;with FADOQuery do begin
Close;
SQL.Clear;
SQL.Add('select * from Products where pID=:paID');
ParamByName('paID').Value:='001';
Open;
end;
Close;
SQL.Clear;
SQL.Add('select * from a where names= :a);
ParamByName('a).Values := 'w kao'
Open;
end;上面的等于SQL.Add('select * from a where names= "w kao"');
该是ParamByName('a').Value := 'w kao'
begin
Close;
SQL.Clear;
SQL.Add('select * from a where names= :a);
Open;
Showmessage(FieldByName('name').AsString);
end;回答的比较白。。希望你能理解= =~
既然有:
with ADOQuery do begin
Close;
SQL.Clear;
SQL.Add('select * from a where names= :a);
ParamByName('a).Values := 'w kao'
Open;
end;上面的等于SQL.Add('select * from a where names= "w kao"');那为什么不直接用SQL.Add('select * from a where names= "w kao"');这样不是更简单明了。
Close;
SQL.Clear;
SQL.Add('select * from a where ID= :a);
ParamByName('a).Values := 1
Open;
end;with ADOQuery do begin
Close;
SQL.Clear;
SQL.Add('select * from a where ID= '+IntToStr(1));
Open;
end;你觉得哪个好点?
ParamByName的好处越能体现..
SQL.Add('select * from a where ID= :a or id2 =:b or id3 =:c);
ParamByName('a').Values := 1;
ParamByName('b').Values := 2;
ParamByName('c').Values := 3;
SQL.Add('select * from a where ID= '+IntToStr(1)+'or id2 ='+IntToStr(2)+......);//后面的实在打不下去了。。太累