2010-10-21 98 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;