2010-10-21 54 views
1

我做了一个数据库与悖论7.通常的搜索我要做的就是像这样的语法:部分搜索表(BDE)

Table.Filter := 'Country=' + QuotedStr(Edit.Text); 

这将返回行这些国家字段相同的编辑输入的文本。当我想寻找个国家的“L”开始我使用这个语法:

Table.Filter := 'Country=' + QuotedStr(Edit.Text + '*'); 

但我怎么可以搜索领域那些已完成了“L”?此语法不起作用:

Table.Filter := 'Country=' + QuotedStr('*' + Edit.Text ); 

谢谢。

回答

3

您可以使用OnFilterRecord事件执行自定义过滤。用你的榜样,也许吧。像这样:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean); 
var 
    s: string; 
begin 
    Accept := False; 
    if not DataSet.FieldByName('Country').IsNull then begin 
    s := DataSet.FieldByName('Country').AsString; 
    Accept := Copy(s, Length(s), 1) = 'L'; 
    end; 
end;