在delphi中有没有相当于fox中的go语句的实现方法?(50分)

  • 主题发起人 主题发起人 佛草
  • 开始时间 开始时间

佛草

Unregistered / Unconfirmed
GUEST, unregistred user!
我是个新手,现用delphi写个数据库操作程序,却找不到相当于foxbase中的go的记录跳转语句?
我不要moveby,它是相对跳转的,我要绝对跳转,比如我想跳到记录号为50的记录。另外有没有
办法在delphi中读出×。dbf中的标记为删除的记录?如何弄?谢谢。
 
另外是用table控件操作的。
 
TDataSet有个RecNo属性,读取它,就能读出当前的记录号,同时,给它赋值也可以
转到相应的记录,前提是你所用的继承于TDataSet(这个属性在TDataSet中未实现)的
数据集控件必须实现这个属性,我知道ADOExpress数据集都有实现这个属性。
但我得提醒,在多用户数据库下,按记录定位是不可靠的,因为其它用户可能同时
插入和删除数据。最好用Bookmark属性,具体请参考Book Online。
 
rzhao:谢谢你的回答,有两点我要说明一下:我要操作的库是个固定记录数的库,所以
不存在按记录定位不可靠的问题,另外这个库我是不能去修改的,即我无法使用给它赋值的
方法。另外被做了标记的记录如何用table控件读出来?
 
至于想读dbf中软删除的记录,得用BDE API,可以参考《Delphi 5 开发人员指南》
或《Delphi 4 开发大全》。
 
自己都知道嘛,呵呵,自己研究吧,据我知,就上面同志说的方法了
 
另外,给RecNo属性赋值只是改变当前记录,不修改记录数据。
 
我没有这两本书。呵呵。。。
 
>>另外被做了标记的记录如何用table控件读出来?
用filter属性:
filtered := false;
filter := '标志 = ''x''';
filtered ;= true;
 
我的都是印刷品,看来没法传给你。
你还可以参考Delphi的Tools Help,查找DbiGetRecord函数,用它你可以读出
软删除的记录。相信看过之后你比我更明白!
我想你所说的做了标记的记录应该是指做了删除标记的记录吧,至于做了其它
标记的,方法很多。
 
我试试。
 
差点忘了给分了。呵呵。。。
 
后退
顶部