以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求高效率的复制代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=10211)

--  作者:xmj09663
--  发布时间:2011/5/25 18:11:00
--  求高效率的复制代码
老爹 有没有 高效率 的  将 a表 的数据 复制到 b表的  代码  
--  作者:czy
--  发布时间:2011/5/25 18:19:00
--  
如果两表结构一样,Filler效率应该不错吧
--  作者:xmj09663
--  发布时间:2011/5/25 18:29:00
--  
结构不一样   有牛逼点的 代码吗   我现在做 物料需求模块   有5W多项物料 而且要复制的列数 也比较多     我今天 做出来的 代码  速度 有点慢  要5分钟    所以上论坛求救   
[此贴子已经被作者于2011-5-25 18:30:49编辑过]

--  作者:czy
--  发布时间:2011/5/25 18:43:00
--  
好像Merger效率还可以,不过我没试过这么大的数据量,你可以试试
--  作者:czy
--  发布时间:2011/5/25 19:02:00
--  

这么大的数据量一次性复制,如果需保存,建议还是用sql直接后台操作的好。

刚才测试了一下,Merger方法速度很快。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

--  作者:xmj09663
--  发布时间:2011/5/25 19:29:00
--  
很  好的  谢谢你了   是啊  我现在 也在为 这么大的数据量 头痛着   这 5w 多 只是针对未来3个月的订单量   如果要做到真正意义上的物料需求  基本上要在这个基础上增加 3.4倍    保存这个头痛的事    哎  麻烦你再教教我别的方法看
[此贴子已经被作者于2011-5-25 19:37:30编辑过]

--  作者:blackzhu
--  发布时间:2011/5/25 20:01:00
--  

With Tables("表A")
    For i As Integer = .Rows.Count -1 To 0 Step -1
        Dim r1 As Row = .Rows(i)
        Dim r2 As Row = Tables("表B").AddNew
        For Each c As Col In .Cols
            r2(c.name) = r1(c.name)
        Next
        r1.Delete
    Next
End With

这个要在表结构一样的情况下起作用.

 


--  作者:blackzhu
--  发布时间:2011/5/25 20:02:00
--  
复制所有行的按钮代码.如果本表不要删除,请删除 r1.Delete 这句代码.

--  作者:xmj09663
--  发布时间:2011/5/25 20:07:00
--  
经测试  blackzhu   你的代码  速度 慢 68 慢    还不如我前面的呢    哎   悲剧啊
--  作者:blackzhu
--  发布时间:2011/5/25 20:20:00
--  

不会吧

 

你本来就有5W条数据呢