for i =1 to 50000
rec.addnew
rec("")=a(i).**
rec("")=a(i).**
next
rec.UpdateBatch

解决方案 »

  1.   

    我试得update和updatebatch一样慢,无法忍受
      

  2.   

    是否已把游标LOCKTYPE设为adLockBatchOptimistic如设为adLockOptimistic上面两段程序是等价的
      

  3.   

    rec.locktype=adLockBatchOptimistic
    rec.open
    for i =1 to 50000
    rec.addnew
    rec("")=a(i).**
    rec("")=a(i).**
    next
    rec.UpdateBatch
      

  4.   

    故事的角色,你是用什么机子,我的是c433,64M,win98,access97,2000条记录要8分钟,我不敢试50000条
      

  5.   

    用conn对象 Execute方法执行一个Insert语句会不会快一些。我想应该更快。
      

  6.   

    ado处理本地数据库的确慢,我发现用dao快多了,而且我发现用addnew比调用参数查询还快得多,但还是不够快,我读100000条记录比增加100000条记录快几个数量级,我想两者理论上应差不多,所以增加记录可能还有快的方法。
      

  7.   

    pxq(风轻轻地吹) ,谢谢,但我没设索引。还是用dao吧,不知有没有更快的
      

  8.   

    生成SQL语句的Insert/Update,用Adodb.Command对象一个一个地执行这些语句Dim i as Integer
    Dim SSql as String
    adoCmd.CommandType = adCmdTextFor i = 1 To 20000
      Ssql = "Insert into Table(Value) = " + a(i).***
      adoCmd.Execute(Ssql)
    Next i比Recordset更新快一个数量级,本人曾亲历这种事情,保证。
      

  9.   

    haha, SQL写错了。
      Ssql= "Insert into Table(Value) values(" & a(i).*** &")"
    反正应不会影响你的理解。我就用这样的方法来更新表,七八千条一分多钟就更新完了,
    几万条应该不会比十分钟更长Good Luck
      

  10.   

    用cnn.execute(strSql)很快就搞定!
      

  11.   

    我不想用ADO了用ado太慢了还是用dao吧,快多了因为我的数据库是本地数据库,用不着ado,但不知是否还有更快的方法,我要的只是速度
      

  12.   

    我不想用ADO了用ado太慢了还是用dao吧,快多了因为我的数据库是本地数据库,用不着ado,但不知是否还有更快的方法,我要的只是速度 
      

  13.   

    数据量如果很大的话,用Stored Procedure 就好。
      

  14.   

    我是提问者 ,我不想用ADO了用ado太慢了还是用dao吧,快多了因为我的数据库是本地数据库,用不着ado,但不知是否还有更快的方法,我要的只是速度,
      

  15.   

    ado处理本地数据库的确慢,我发现用dao快多了,而且我发现用addnew比调用参数查询还快得多,但还是不够快,我读100000条记录比增加100000条记录快几个数量级,我想两者理论上应差不多,所以增加记录可能还有快的方法。 我是提问者 我要的只是速度, 
      

  16.   

    ado处理本地数据库的确慢,我发现用dao快多了,而且我发现用addnew比调用参数查询还快得多,但还是不够快,我读100000条记录比增加100000条记录快几个数量级,我想两者理论上应差不多,所以增加记录可能还有快的方法。 我是提问者 我要的只是速度,