delphi与sql server2000连接采用bde还是ado好?next后死循环?丢数据?
我做了一个程序前台采用delphi6后台使用sql server2000,开始采用BDE做数据库连接,但是出现了一些很奇怪的问题。
首先我用table来处理批量修改数据的功能,后来发现处理数据必须要求数据按照某种既定的顺序排列,因此使用了table的indexfieldname属性,来控制数据的排序,但是发现排序后的数据陷入了死循环,当到了某一条数据后table.next方法就不能准确定位到下一条数据,而是在当前数据开始循环。这个问题在采用paradox7数据库的时候就发现过,但是当时我用别的办法绕过了数据排序的问题。但是这一次不能绕过。
后来我采用query控件,并且将requestalive属性修改后使他能够接受数据的修改,而且能够根据我的要求开始任意排序,但是这次发现了根奇怪的问题。就是某些数据永远也无法遍历到,当query.eof=true的时候有一些数据仍然没有处理过,具体纪录处理日志后发现当query.next的时候有一些数据丢失了。
无奈之下采用adoconnection和adotable,adoquery但是发现上述问题仍然存在,而且还出现了一个新的问题,就是数据处理速度当数据量超过一定数量后整个程序的运行效率突然降到很低,速度极慢。
有没有那位高手能够指点迷津,解决数据无法遍历,next时死循环,ado数据处理极慢的问题???
非常感谢!!!