Office中国论坛/Access中国论坛

标题: ADO的Recordset对象和Command对象 [打印本页]

作者: 你是坏蛋    时间: 2012-12-8 20:53
标题: ADO的Recordset对象和Command对象
这几天在看ADO,发现ADO还有个Command对象,貌似没用过,所以狠狠的试了一下,
结果。。。。。。。。让我问个比较白痴的问题:
用ADO新增记录,按理说,如果Command对象不需要建立记录集,应该不比较不占内存,操作速度比较快才对。
可是我试一下,用Recordset的Addnew方法结果比较前者快2倍。
内存使用情况就不知道了,这样看,还是Recordset对象的Addnew方法好?
搞不清楚,为什么?也许我就是瞎折腾。
如下两段代码。
Private Sub Command4_Click()
  Dim rs As ADODB.Recordset
  Dim sqlstr As String
  Dim i As Integer
  Dim t As Double
  sqlstr = "select * from 订单"
  Set rs = New ADODB.Recordset
  rs.Open sqlstr, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  t = Timer
  With rs
    For i = 1 To 10000
      .AddNew
      .Fields("订单号") = Me.订单号
      .Fields("客户名称") = Me.客户名称
      .Update
    Next i
  End With
  t = Timer - t
  MsgBox t
  rs.Close
  Set rs = Nothing
End Sub


第二段
Private Sub Command5_Click()
  Dim rsm As New ADODB.Command
  Dim sqlstr As String
  Dim i As Integer
  Dim t As Double
  
  sqlstr = "insert into 订单 values(" & Me.订单号 & "," & Me.客户名称 & ")"
  t = Timer
  rsm.ActiveConnection = CurrentProject.Connection
  rsm.CommandText = sqlstr
  rsm.CommandType = adCmdText
  For i = 1 To 10000
      rsm.Execute , , adExecuteNoRecords
  Next i
  
  t = Timer - t
  MsgBox t
End Sub


作者: 你是坏蛋    时间: 2012-12-8 20:56
上例子,文本框输入要数字,否则类型不符。

作者: ui    时间: 2012-12-9 11:49
谢谢分享,坐个沙发
作者: t小宝    时间: 2012-12-9 15:08
实践是检验真理的唯一标准
作者: cfedf    时间: 2014-11-18 18:18
我来学习一下。谢谢楼主




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3