读书人

数据量比较大效率很低有什么办法吗

发布时间: 2012-04-10 21:03:56 作者: rapoo

数据量比较大,效率很低,有什么办法吗
比如说程序里是这种情况:
外层循环1000次(dw)
内层循环50次(dw)
因为操作内层那个dw,所以要在内层循环里修改或者新增
这样好慢啊

有没有什么办法判断内层那个dw数据是否改变
如果可以的话我只需要修改改变的那些值



[解决办法]
if dw.DeletedCount() > 0 OR dw.ModifiedCount() >0 THEN //DW内容修改过

end if

[解决办法]
把你的需求说得再明确点,绝对有更好的处理方法的
[解决办法]
GetNextModified method (DataWindows)
Description

Reports the next row that has been modified in the specified buffer. //修改过的值

---

DeletedCount > 0 的话

dw.GetItemString(1, "a", Delete!, FALSE) //从delete buffer中提取数据
[解决办法]
在dw中增加一个计算列com_m,expression写为“If(IsRowModified(), getrow(), 0) = 1”
另外用另外一个包含一个long型列(mrow)的datawindow(d_modiiedyrow)来作为datastore lds 的dataobject

C# code
datastore ldslds = create datastorelds.dataobject = 'd_modiiedyrow'if dw.rowcount() > 0 then    lds.object.mrow.primary = dw.object.com_m.primary    lds.setfilter("mrow > 0"); lds.filter()    //这样一来lds的mrow中存储的就是dw中所有被修改的行的行号了end if 

读书人网 >PB

热点推荐