最后是使用变通的方法处理的!
我的代码Global $objErr=""
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ; Install a custom error handler
Func MyErrFunc()
$objErr = $oMyError.Description
; $oMyError.scriptline
;SetError ( hex($oMyError.Number,8), $oMyError.scriptline)
EndFunc
Dim $Cn1 = ObjCreate("Adodb.Connection")
With $Cn1
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.ConnectionString = "Data Source=" & @ScriptDir & "\db1.mdb;"
.CursorLocation = 3 ;3=adUseClient
.Open
;删除记录
AdoDbExeCute( $Cn1, "DELETE FROM WHERE 1=1" )
Switch @Error
case 0
msgbox( 64, "删除数据", "删除记录 " & @extended & " 条!" )
case 1
msgbox( 48, "提示", "未能创建对象! ")
case 2 ;'sql 出错
msgbox( 48, "提示", "动态SQL出错! " & $objErr)
case else
msgbox( 48, "提示", "执行遇到错误! ")
EndSwitch
;导入文本
AdoDbExeCute( $Cn1, "INSERT INTO SELECT * FROM . ") ;WHERE 类别=106" )
Switch @Error
case 0
msgbox( 64, "导入数据", "导入记录 " & @extended & " 条!" )
case 1
msgbox( 48, "提示", "未能创建对象! ")
case 2 ;'sql 出错
msgbox( 48, "动态SQL错误", $objErr)
case else
msgbox( 48, "提示", "执行遇到错误! ")
EndSwitch
.Close
EndWith
Func AdoDbExeCute(ByRef $Cnn, byRef $strQuery )
;Dim $vba = ObjCreate("MSScriptControl.ScriptControl") ;与下面效果相同
Local $vbs = ObjCreate("ScriptControl")
Local $erl, $rec
If (IsObj($Cnn)=0 OR IsObj($vbs)=0) Then
Return SetError(1, 0, 0)
Endif
$vbs.Language = "VBScript"
$vbs.AddObject("cnn", $Cnn, false )
$vbs.AllowUI = false ;不显示接口UI
$vbs.ExecuteStatement('cnn.ExeCute "' & $strQuery & '", x ,1' )
$erl = $vbs.Eval("cnn.Errors.Count")
$rec = $vbs.Eval("x")
$vbs.reset
if $erl>0 then
return SetError(2, $rec, $rec)
Else
return SetError(0, $rec, $rec)
Endif
EndFunc 回复 17# dhlhmgc
谢谢你, 可是我这个是MSSQL。对这些个对象, 实在功力有限,谢谢你的回答 。 回复 17# dhlhmgc
谢谢你, 可是我这个是MSSQL。对这些个对象, 实在功力有限,谢谢你的回答 。 唉, 再顶出水面 。 看能不能有人来帮帮忙。 我顶, 顶,顶。就是希望有人在这方面那这个东西加强。对执行影响返回值方面。 回复 1# chenronting
有辦法解決
但是 算是 有點作弊如果只是位了得到傳回值.....這樣也可以得到
$conn.Execute ("UPDATE MacContractMain SET MA027='A' ");
$Rs.Open ("SELECT @@rowcount ");
MsgBox(0,"",$RS.Fields(0).value)
可以先使用 $conn.Execute執行一個 UPDATE 的動作....
接著 用$Rs.Open ("SELECT @@rowcount ")傳回剛剛動作影響的筆數......
$RS.Fields(0).value 就是你要的結果..... 回复 23# kk_lee69
哦?!很有意思。。谢谢, 我试试看!!
页:
1
[2]