您的位置:首页 > 其它

TClientDataSet[14]: 测试 FindFirst、FindNext、FindLast、FindPrior、Found

2010-02-03 15:35 351 查看
//先在窗体添加 ClientDataSet1 和两个 Button

{ 初始化测试数据 }
procedure TForm1.FormCreate(Sender: TObject);
begin
with ClientDataSet1 do begin
FieldDefs.Add('ID', ftInteger);
FieldDefs.Add('Name', ftString, 6);
FieldDefs.Add('Age', ftWord);
CreateDataSet;
AppendRecord([1, 'A',    11]);
AppendRecord([2, 'AB',   22]);
AppendRecord([3, 'ABC',  33]);
AppendRecord([4, 'ABCD', 44]);
AppendRecord([5, 'a',    55]);
AppendRecord([6, 'ab',   66]);
AppendRecord([7, 'abc',  77]);
AppendRecord([8, 'abcd', 88]);
end;
end;

{ FindFirst、FindNext、FindLast、FindPrior }
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Filter := 'Name Like ''%c%''';
ClientDataSet1.FilterOptions := [foCaseInsensitive];
ClientDataSet1.Filtered := True;

if ClientDataSet1.FindFirst then ShowMessage(ClientDataSet1['Name']); { ABC }
if ClientDataSet1.FindNext then ShowMessage(ClientDataSet1['Name']);  { ABCD }
if ClientDataSet1.FindLast then ShowMessage(ClientDataSet1['Name']);  { abcd }
if ClientDataSet1.FindPrior then ShowMessage(ClientDataSet1['Name']); { abc }

ClientDataSet1.Filtered := False;
end;

{ 遍历过滤结果 }
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientDataSet1.Filter := 'Name Like ''%c%''';
ClientDataSet1.FilterOptions := [foCaseInsensitive];
ClientDataSet1.Filtered := True;

ClientDataSet1.FindFirst;
while ClientDataSet1.Found do
begin
ShowMessage(ClientDataSet1['Name']); { ABC / ABCD / abc / abcd}
ClientDataSet1.FindNext;
end;

ClientDataSet1.Filtered := False;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: