aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 11619|回复: 4

大量数据插入Access,如何提高效率?

[复制链接]

40

主题

103

回帖

937

积分

三级会员

积分
937
发表于 2011-8-25 12:22:33 | 显示全部楼层 |阅读模式
本帖最后由 zyzy135 于 2011-8-25 12:24 编辑

大量数据插入Access,如何提高效率?

    import com;
    conn = com.CreateObject("ADODB.Connection")
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + io.fullpath("\test.mdb")
    conn.open();
    var rs = com.CreateObject("ADODB.RecordSet");
   
    io.open()
    t1=time.tick()

    for(i=1;10000;1){
         var s=tostring(i)
         var sql="INSERT INTO Content (内容) VALUES  ('" + s + "')";
         conn.Execute(sql)
    }
   
    t2=time.tick()
    io.print(t2-t1)

    conn.close();


65

主题

881

回帖

5033

积分

荣誉会员

积分
5033
发表于 2011-8-25 12:32:01 | 显示全部楼层
http://www.google.com.hk/#hl=zh- ... iw=1440&bih=775

谷歌一下  access 事务  

40

主题

103

回帖

937

积分

三级会员

积分
937
 楼主| 发表于 2011-8-25 12:42:19 | 显示全部楼层
大哥,
要的就是事务处理,就是无从下手啊,能否再给个简单的提示,谢了

13

主题

109

回帖

971

积分

三级会员

积分
971
发表于 2011-8-25 19:02:17 | 显示全部楼层

  1. import com;
  2. conn = com.CreateObject("ADODB.Connection")
  3. conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + io.fullpath("\test.mdb")
  4. conn.open();
  5. var rs = com.CreateObject("ADODB.RecordSet");

  6. io.open()
  7. t1=time.tick()

  8. conn.BeginTrans()

  9. for(i=1;10000;1){
  10. var s=tostring(i)
  11. var sql="INSERT INTO Content (内容) VALUES ('" + s + "')";
  12. conn.Execute(sql)
  13. }

  14. conn.CommitTrans()

  15. t2=time.tick()
  16. io.print(t2-t1)

  17. conn.close();
复制代码

40

主题

103

回帖

937

积分

三级会员

积分
937
 楼主| 发表于 2011-8-26 01:14:55 | 显示全部楼层
ejzhang 发表于 2011-8-25 19:02

经测试,
原来的代码用时10485,
楼上的代码用时8187,
节约时间约2000毫秒。
楼上的大哥,谢了!!!!!
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2023-9-24 18:20 , Processed in 0.060230 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表