我习惯First()在迭代查询结果时总是调用:
Qry.Open;
Qry.First;
while not Qry.Eof do
begin
//do something
Qry.Next;
end;
Run Code Online (Sandbox Code Playgroud)
有没有理由,这First()不是自动调用的Open()?
或者问另一种方式:我们使用某种DB访问抽象类.将呼叫First()纳入我们的Open()日常工作是否是一个好主意?
您正在展示为什么First肯定需要的完美示例:由于您在迭代后未关闭数据集,因此对此代码序列的新调用将不会真正打开数据集.它仍然是开放的,并且Open默默无闻地呼唤.因此First需要a来使迭代工作.
严格来说,它归结为Hilario所说的:First在迭代之前是必需的.
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |