有谁能在不移动记录的情况下判断DataSet是否是首记录或末记录(100分)

  • 主题发起人 主题发起人 savetime
  • 开始时间 开始时间
S

savetime

Unregistered / Unconfirmed
GUEST, unregistred user!
这里的首记录和末记录不是Bof, Eof那样的属性,而是位于数据集中第一条记录、
最后一条记录。
比如从第二条记录Prior到了第一条记录,在程序中能判断这是第一条记录吗?
注意,这时Bof不为真,(提醒那些为了抢分的人)
还要考虑到缓存更新中有数据被删除的那些,所以用RecNo没用
记住条件:不能移动记录,或者您有必须移动记录才能得到的切实理由。
 
没有办法,
自己设标志字段了。
 
如果有主索引,就判其值,或者新建一个临时DataSet,用它来移。
 
我错了,RecNo=1判断首记录是可以的
但如何判断末记录呢?RecordCount 可能为0
 
RecCount=0时表示数据集范围为空,且RecNo=0
 
改了问题,刚看到
 
当RecordCount为0时,Bof,Eof都为True.
不存在首、末记录.
RecNo=RecordCount时则是末记录。
 
我可不明白,你解决这问题有什么用。
循环都直接用While not DataSet.Eof do
这有什么不好吗????
 
xlkjok说得对
 
这个问题的实际意义是,如果用户在第一条记录时,Prior或First键仍可用
这是没有道理的。
原贴
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1353566
 
都是用别的字段来标识的
 
RecCount or RecNo or 0 or 1 比较不就得了!
 
如果DataSet是ClientDataSet可以用RecNo来进行判断,如果是Query不行,
有主关键字的话还是用Bookmarkstr结合next,prior来判断吧
 
偷偷地调用next,判断一下是否EOF为ture,然后再prior回来嘛!
 
记住开始和最后的id,然后比较
 
只要是delphi的dataset(从它那里继承的控件也行);利用RecNo来判断/
第一条就是RecNo=1 最后一条就是RecNo=RecordCount;
可以先判断一下 isempty;
 
人太多,随便分
 
后退
顶部