我有一个场景,我必须根据查询获取一些记录,然后操纵每个记录并显示每条记录的消息。在.NET中,我可以使用数据表并在“dt.Rows”中使用For Each来完成此操作。但是我怎样才能在delphi中实现这一点。我的后端db是informix,我使用的是Delphi 2010版本。我必须使用BDE。它会更好如果我能得到一些示例代码。
答案 0 :(得分: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中查看所有这些内容。
答案 1 :(得分: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