Table如何实现模糊查询(50分)

  • 主题发起人 zyxseven
  • 开始时间
Z

zyxseven

Unregistered / Unconfirmed
GUEST, unregistred user!
Table如何实现模糊查询
 
写SQL语句
Select *
from Table1
where field1 like '%xx%'
 
我说的是TTable控件
 
帮忙up一下把
 
用Filter吧! 也可以实现模糊查询的!
table.Filter := 'Name >=' + 'abc'; 可以实现查询所有名字>='abc'的人!
 
每个人名字的长度不一样啊
 
用Filter吧! 也可以实现模糊查询的!
table.Filter := 'Name >=' + 'abc'; 可以实现查询所有名字>='abc'的人!

查询结果为
name = 'abc'; name = 'abcd'; name = 'abcde'; name = 'b'; name = 'bcd';
总之会列出字符串〉= ‘abc' 查询结果!
 
要是想查a开头的呢
 
好像用Table.Filter:='name like a*' ,Delphi的帮助里很详细的,不过Table.Filtered属性首先要设为true默认是false的。
 
那只有使用过滤了
Filter=‘条件一’ and(或or)‘条件二’
就跟写Where子句一样
 
用GotoNearest()或者FindNearest()
GotoNearest()
eg.
with Table1 do
begin
SetKey;
FieldByName('State').AsString := 'CA';
FieldByName('City').AsString := 'Santana';
GotoNearest;
end;

FindNearest()
eg.
procedure TForm1.FormActivate(Sender: TObject);
begin
Table1.DatabaseName := 'DBDemos';
Table1.TableName := 'Customer.db';
Table1.Active := True;
Table1.IndexName := 'ByCompany';
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
Table1.FindNearest([Edit1.Text]);
end;
 
顶部