dhlhmgc 发表于 2009-12-9 01:19:47

大家一起来解决Ado-Execute的一个难题!

本帖最后由 dhlhmgc 于 2010-8-16 01:28 编辑

问题:
用ado组件的Execute函数功能更新数据后,希望得到具体更新了多少条记录!!
Dim $Cn1 = ObjCreate("Adodb.Connection")
Dim $CountRecord=0
With $Cn1
    .Provider = "Microsoft.Jet.OLEDB.4.0;"
    .ConnectionString = "Data Source=" & @ScriptDir & "\database.mdb;"
    .CursorLocation = 3                ;3=adUseClient
    .Open
    .Execute( "UPDATE SET a1=1" , $CountRecord )
    .Close
EndWith
Msgbox ( 48, "message", "update RecordCount = " & $CountRecord )
但一直未能得到解决!!变量 $CountRecord 的值总是为零。

后在英文相关网站得到一些帮助信息, 按照COM事件捕获处理ADO ExecuteComplete事件
改为以下代码!
Dim $Cn1 = ObjCreate("Adodb.Connection")
$oAdoDbEvent = ObjEvent($Cn1, "_AdoDbEvent_")
Dim $CountRecord=0
With $Cn1
    .Provider = "Microsoft.Jet.OLEDB.4.0;"
    .ConnectionString = "Data Source=" & @ScriptDir & "\database.mdb;"
    .CursorLocation = 3                ;3=adUseClient
    .Open
    .Execute( "UPDATE SET a1=1" , $CountRecord )
    .Close
EndWith
Msgbox ( 48, "message", "exit" )

Func _AdoDbEvent_ExecuteComplete($recaffected, $objerror, $status, $objcomm, $objrs, $objconn)
    MsgBox(64, "ADODB Event", "Execute Complete: recaffected = " & $recaffected)
EndFunc

;问题是一执行,什么提示也没有!!代码就已经执行完毕了,此问题始终没有得到很好的解决!
;肯请高手指点了!
;附英文网站图片

sxd 发表于 2009-12-9 22:36:14

请使用最新版本 UserInclude\Access.au3 来操作mdb
应该会对你有帮助

doshowyam 发表于 2010-1-7 18:10:49

俺也
求解
页: [1]
查看完整版本: 大家一起来解决Ado-Execute的一个难题!