在循环中,每增加一个记录,用MoveNext,推出循环后,用UpdateBatch一次更新数据库

解决方案 »

  1.   

    我怎测得用update和用undaebatch一样慢啊,用movenext就不用addnew 吗能给个简单的例子吗
      

  2.   

    recordset.addnew "字段名列表","value列表"  
    recordser.update   
             字段名和值要一一对应!
    如果用UpdateBatch,你5000条记录不会出错吗?
      

  3.   

    如果是SQLServer,可以把数据存为文本文件。然后用DTS(组件)或者BCP(块复制程序)。由于绕开了SQL语句使用了SQLServer的内置数据导入功能,快多了。
      

  4.   

    如何建立一个内存表?,有谁能举个用updatebatch的例子么
      

  5.   

    该范例连同 CancelBatch 方法说明 UpdateBatch 方法。Public Sub UpdateBatchX()   Dim rstTitles As ADODB.Recordset
       Dim strCnn As String
       Dim strTitle As String
       Dim strMessage As String   ' 将连接字符串赋值给变量。
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "   Set rstTitles = New ADODB.Recordset
       rstTitles.CursorType = adOpenKeyset
       rstTitles.LockType = adLockBatchOptimistic
       rstTitles.Open "titles", strCnn, , , adCmdTable
       
       rstTitles.MoveFirst   ' 对记录集执行循环并询问用户是否要更改指定标题的类型。
       Do Until rstTitles.EOF
          If Trim(rstTitles!Type) = "psychology" Then
             strTitle = rstTitles!Title
             strMessage = "Title: " & strTitle & vbCr & _
                "Change type to self help?"         If MsgBox(strMessage, vbYesNo) = vbYes Then
                rstTitles!Type = "self_help"
             End If
          End If      rstTitles.MoveNext
       Loop   ' 询问用户是否要提交以上所作的全部更改。
       If MsgBox("Save all changes?", vbYesNo) = vbYes Then
          rstTitles.UpdateBatch
       Else
          rstTitles.CancelBatch
       End If   ' 打印记录集中的当前数据。
       rstTitles.Requery
       rstTitles.MoveFirst
       Do While Not rstTitles.EOF
          Debug.Print rstTitles!Title & " - " & rstTitles!Type
          rstTitles.MoveNext
       Loop   ' 恢复原始值,因为这只是演示。
       rstTitles.MoveFirst
       Do Until rstTitles.EOF
          If Trim(rstTitles!Type) = "self_help" Then
             rstTitles!Type = "psychology"
          End If
          rstTitles.MoveNext
       Loop
       rstTitles.UpdateBatch   rstTitles.CloseEnd Sub
      

  6.   

    huanggx(大侠) 方法我试得与update一样慢
      

  7.   

    huanggx(大侠)的updatebatch方法我试得与update一样慢 
      

  8.   

    把数组写到文本文件中试试。如果写入文本的速度还好,你再和我联系,因为从文本到数据库可以很快的。CQQ-[email protected]