我试图从数据库中获取记录,其中字段具有特定值。 这是我到目前为止写的。 With AddressListTable do while AddressListTable.FieldByName('ContactID ').AsInteger = I do while not Eof do 因此,我想在MCListBox中显示ContactID值为I的所有记录。目前发生的情况是,它显示所有未过滤的记录。 谢谢你的帮助
procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
var
bm: TBookmark;
MyIntValue: Integer;
begin
bm := DataSet.GetBookmark;
DataSet.DisableControls;
try
DataSet.First;
while not DataSet.Eof do
begin
if DataSet.FieldByName('MyFieldName').AsInteger = MyIntValue then
//do something like add to your Listbox
else
//do something else
DataSet.Next;
end;
finally
DataSet.GotoBookmark(bm);
DataSet.EnableControls;
end;
end;
1条答案
按热度按时间kxe2p93d1#
正如MBo所说,最好使用QueryDataset并在查询sql代码中执行。如果您坚持使用Table数据集执行此操作,则可以在AfterOpen属性上执行此操作。类似于以下内容: