hur.cn - 华软网

 热门搜索

讨论关于数据对比

  作者:未知    来源:网络    更新时间:2018/10/12
3个数据窗口对象是一样的,一共6列

dw_1是从数据库检索出来的,dw_2是从TXT资料导入的,两个数据窗口记录数可能不同。

现在要求对比两个数据窗口中的数据,只对比前4列,只需前4列完全相同就移动到dw_3,最后结果是dw_3中是核对正确的,dw_2,dw_1分别是核对不一致的



我用循环

for i = 1 to dw_1.rowcount()

......

li_row = dw_2.find(...,1,dw-2.rowcount())

if li_row > 0 then

dw_2.deleterow(li_row)

dw_1.rowsmove(i,i,primary!,dw_3,1,primary!)

i --

end if

next

这样数据多的话速度很慢,几万条记录,有点没法忍受,大家讨论一下怎样提高速度?谢谢

------华软网友回答------
运前进程前dw_1,dw_2,dw_3,setRedraw(false),结束后setRedraw(ture),能够提高一些速度
------华软网友回复------
1.rowcount()用一变量保存起来,不要每次都rowcount()
2.从数据库检索的直接用SQL语句
------华软网友回复------

如果dw_1,dw_2自身没有重复数据,能够将记录都copy到dw_3中,排序后逐一和下一记录对照,将重复和不符和条件的删除

那种方法速度更快一些,还要经过尝试
------华软网友回复------
另有取数据时候用dw.object.col[]的速度要比getitem快一些


------华软网友回复------
循环是肯定慢的。况且你有万条级数据,
不过我没有尝试过,能否这样想,借用临时表和SQL语句来对比。
------华软网友回复------
谢谢大家,有没有更好的方法呢,欢迎继续讨论

------华软网友回复------
把TXT资料导入降临时内外再对比肯定对照快的

楼主程序也有问题,肯定犯毛病的

------华软网友回复------
会出什么毛病?


------华软网友回复------
小马哥,是否是CPB的小马哥?,久违了。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。