最后一条记录并不等于是EOF?(20分)

  • 主题发起人 主题发起人 johnrain
  • 开始时间 开始时间
J

johnrain

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Table1.FindKey([‘ABC’])将记录移到最后一条。
可我判断是否是最后一条时,(if Table1.eof then...)却不是!只有再用next命令,才到EOF!
这是怎么回事?
 
就是这样的,所有的数据库都是这样,这是数据库结束的标记。
没有什么道理可讲。
 
有同感,不知道delphi是什么意思??
怎么判断到了数据库的最后呢?
 
最后一条记录 Table1.Last
 
BOF/EOF不是记录,是边界
BOF-------------
FIRST XXXXXXXXXXX
....
LAST XXXXXXXXXXX
EOF-------------
如果数据库为空
BOF=EOF------------------

 
NULK的说法是正确的,我们可以把数据库中的表看作双向链表,
所谓的EOF其实是判断当前结点是否为空,不同的是数据库做了改进,使用两套指针
此时你还可以正常访问末记录
 
数据库的基本理论啊……居然不知道……
 
要避免类似情况,最好用SQL语句。
select * from a where x='ABC'
if Query.isempty then ...
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
927
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部