这个问题有点小难,送 100 分!!!请大家帮我!(100分)

N

ndyufei

Unregistered / Unconfirmed
GUEST, unregistred user!
为何一个用 Access 创建的数据库(.MDB)我用 DBNavigator 控件进行

记录的前移与后移的时候怎么不是按原来顺序进行移动的,比如我创建

了一个表,里面有 10 条记录,第一条是 A,第二条是 B,第三条是 C

(以此类推),结果我在 DELPHI 当中用 DBNavigator 控件进行记录的

前移与后移的时候为何第一条变成了 C,第二条变成了 E....这是何原因

,是不是要设置什么?请各位高手帮我,谢谢!
 
你设置一下indexfield也就是排序字段,或是在SQL是用Order by 排序一下,
就不会出这问题了。
 
这是排序的问题,你想按A,B,C这样的顺序的话,就设置这个字的索引或是按这个字段
排序。ok?
 
请问两位大哥是不是要先进行排序再用 DBNavigator 进行移动记录啊?

那怎么排序?是不是要到 Access 当中进行排序还是怎样?能告诉我整个过程吗?谢谢!
 
我想你应该在你的表中创建主键.
 
我在用 DBNavigator 移动记录之后有先用过 ADOCommand 进行排序,我是按某字段进

行排序的,结果运行了 ADOCommand 之后再用 DBNavigator 进行操作仍旧不是按顺序进

行移动记录,仍旧第一次是 B,第二次是 E,第三次是 A 等等!~~~~。
 
对了,我也创建过主键了!我就是想按照主键来进行按序或用 DBNavigator 根据主键的

序号来进行移动!
 
如果你用Bde,设Table/Query控件的索引字段---IndexName /IndexFieldName
如果你用ADO,设 AdoTable/AdoQuery的排序字段--Sort,要写在代码里,如:ADOQuery1.Sort :='Field1';
 
可能是你在ACCESS中用了索引,而DELPHI中是根据记录的实际位置来显示的!

用Order by 字段
 
还是order by实用一点
 
我觉得是指针初始化的问题,可以在打开库的时候将指针指向第一条纪录,如
rs.movefirst。
我以前也碰到过这种问题,都是用这种方法解决的!
 
多谢大家的帮助!
 
多人接受答案了。
 
顶部