ADOTable使用? 200分(200分)

  • 主题发起人 主题发起人 dlf
  • 开始时间 开始时间
D

dlf

Unregistered / Unconfirmed
GUEST, unregistred user!
用ADOTable連接了SQL里的數據,但是不能像Table控件一樣容易查找 Fields.
在Table里就用
Table.setkey;
table.FieldByName('ID').AsString:=Edit.text;
table.gotokey;

但在ADOTable里怎麼做呢?
From:~-~
 
用 Seek来查找索引过的表。帮助里有。
function Seek(const KeyValues: Variant; SeekOption: TSeekOption = soFirstEQ): Boolean;

 
如果是Access数据库,Seek不好用,Locate好用。
ADOTable1.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
 
正如小刚所说,LOCATE好用
 
我用的是SQL SERVER,
使用ADOQuery也可以,如果我想在工號欄里查找192943.怎樣寫代碼?
 
附加功能 将问题提前
 
建议不要用adotable,这样会很大的影响你的速度
它是把所有数据传到客户机后进行筛选,改用adoquery
adoquery1.active:=false;
adoquery1.sql.clear;
adoquery1.sql.add('select * from 表名');
adoquery1.sql.add('where Id='''+edit1.text+'''');
adoquery1.active:=true;
 
tadotable.filtered:=false;
tadotable.filter:='工号=192943' or tadotable.filter:='工号='+quotedstring('192943');
tadotable.findfirst;
 
用adoQuery吧,table的速度真是不可想象,尤其是sql server
 
我同意,用adoquery既方便,又快
 
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from 表名');
adoquery1.sql.add('where Id='''+edit1.text+'''');
adoquery1.open;
似乎更好些
 
用adoquery的话可以这么做:
adoquery1.close;
adoquery1.sql.text='select * from 表名 where No='+quotedstring('192943');
adoquery1.open;
如果你的No(表示工号)是数值型的话
adoquery1.sql.text='select * from 表名 where No=192943';
 
多人接受答案了。
 
后退
顶部