TDataSet的Eof属性
admin
2023-01-28 19:39:57
0

TDataSet类的Eof属性应该无人不知,只要写过数据库的,基本上都写过以下的逻辑:

cdsDatabases.First;

while not cdsDatabases.Eof do

begin

(业务逻辑)

cdsDatabases.Next;

end;

这样的逻辑理所当然,可能大家也不一定会深究。但是如果问,当游标指向最后一条记录时,Eof返回的是True还是False?多数人可能都会愣一下。

事实上,答案是要看当时的情况。

在官方文档中,列出了Eof为True的几种情形:

Opens an empty dataset.

Calls a dataset's Last method. (Unless it is a unidirectional dataset)

Call a dataset's Next method, and the method fails because the current record is already the last row in the dataset.

Calls SetRange on an empty range or dataset.

即:

打开空数据集时

调用Last方法去到最后一条记录时

调用next方法,因当前已是数据集的最后一条记录,所以next失败时

在空数据集中调用SetRange方法时

除了以上的4种情况,其余情形Eof都为false.

上面的代码之所以正确,是因为使用的是next,第一次指向最后一条记录时,方法是成功的,所以当时的Eof是false,在最后一条记录调用next时,方法失败,游标指向的仍然是最后一条记录,但这时候Eof已经是true了。

相关内容

热门资讯

特朗普第三度通谍伊朗,红线划到... 前一天刚刚宣称“赢麻了”的美国总统特朗普,22日突然通过社交媒体向伊朗强硬喊话。“即刻起,只要伊朗伊...
2男子涉嫌盗窃转运数百只猫,警... 山东莱州市公安局7月23日通报,7月22日5时许,该局接群众报警称有人盗猫。接警后,公安民警迅速到达...
东方空间引力一号一箭9星发射成... 上证报中国证券网讯(记者 于祥明)记者7月22日从东方空间商业航天公司获悉,东方空间引力一号(遥四)...
湖北交投:用“积木”搭出长寿桥... 7月20日,汉宜高速改扩建项目施工现场一片繁忙,一块预制UHPC盖梁模壳借助吊机平稳落位,短短半小时...
李尔平院士:为智能时代筑牢“电... 封面新闻记者 刘叶 车家竹 摄影 何宏杰 在人工智能浪潮席卷全球的今天,一个名为“电磁兼容”的专业领...
江苏、上海等地将机器人纳入“国... 南都讯记者杨文君 发自北京 7月22日,记者从商务部获悉,2026年上半年,消费品以旧换新累计带动相...
“引力一号”成功发射一箭九星,... IT之家 7 月 22 日消息,今天上午,引力一号运载火箭在上海东部海域点火升空,成功将 9 颗卫星...
特朗普向4名士兵灵柩敬礼,均阵... 当地时间7月22日,美国总统唐纳德·特朗普率领数位高官,来到位于特拉华州的多佛空军基地,参加了阵亡美...
“特朗普这么干,10年后,美国... 据南华早报7月23日报道,分析人士认为,北京如今在语言能力方面更善于解读美国战略,而美国却难以做到同...
墨西哥一市长在市政厅内遭枪击死... 综合法新社等多家外媒报道,墨西哥检方当地时间22日通报称,该国中部一地方市长在市政厅内遭枪击死亡。今...