0

我有一个场景,我必须根据查询获取一些记录,然后操作每条记录并显示每条记录的消息。在 .NET 中,我可以使用数据表并在“dt.Rows”中使用 For Each 来完成此操作。但是我怎样才能在delphi中做到这一点。我的后端数据库是 informix,我使用的是 Delphi 2010 版本。我必须使用 BDE。如果我能得到一些示例代码会更好。

4

2 回答 2

1

处理 Delphi 数据集(任何类型)中记录的标准方法是使用这样的代码

DataSet.First;
while not DataSet.eof do begin
   // process the current record here
   DataSet.Next;
end;

在该循环之前,您应该使用 TDataSet.GetBookMark 记录数据集光标之前的位置,并调用 DisableControls。

用 try.. finally 块包围循环。在“finally”部分中,使用 GotoBookmark 恢复光标位置,然后调用 FreeBookmark,最后调用 EnableControls。

您需要在 OLH 中查找所有这些内容。

于 2013-09-17T12:55:32.083 回答
1

下面的代码遍历数据集:

myDataset.Open; // here we open the dataset and load the records
while not myDataset.Eof do begin
  // here you put the code to work over the current record

  myDataset.Next;
end; // while not the last record

这是迭代数据集中包含的所有记录(从第一条记录到最后一条记录)的标准且更安全的方法。如果你需要倒退,那么代码是:

myDataset.Open; // here we open the dataset and load the records
myDataset.Last; // here we move to the last record
while not myDataset.Bof do begin
  // here you put the code to work over the current record

  myDataset.Prior;
end; // while not the first record
于 2013-09-17T13:30:04.703 回答