本帖最后由 chenronting 于 2012-9-21 20:55 编辑
答案在 23#,感谢他。愿主与其同在。
今天在使用SQL的UDF的过程中发现,使用 _SQL_Execute 来更新数据库时,不会得到更新的数量?
这个返回值不是数组,也不是变量,那么 我是该怎么去识别他呢‘?里面是否包涵有我需要的更新数量?
请懂的朋友不涩赐教!在此感谢。
如下是我提取出来的代码~
Global $S_CON
_SQL_RegisterErrorHandler()
Global $_SQL_OBJ_ERROR ;COM错误码句柄
Global $SQL_ERROR = "";SQL最后的错误码
_SQL_Connect($S_CON)
_SQL_OpenDB($S_CON,'forbugserver')
$G_abc = _SQL_Execute($S_CON,"UPDATE ab_jyxx SET img = 0x00 WHERE j_no = '5127012'")
If IsArray($G_abc) Then
MsgBox(0,0,0)
Else
MsgBox(0,$SQL_Error,$G_abc)
EndIf
Func _SQL_Execute(ByRef $c_Con, $Execute_Data)
If Not IsObj($c_Con) Then Return SetError(2, "无效的数据库连接", 0)
$SQL_ERROR = ""
Return $c_Con.Execute($Execute_Data)
EndFunc ;==>_SQL_Execute
Func _SQL_Connect(ByRef $c_Con, $c_Server = "192.168.1.3", $c_UserName = "user", $c_UserPasswORd = "123")
$SQL_ERROR = ""
Local $c_Reg_Key = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", "SQL Server")
If @error Or $c_Reg_Key = "" Then Return SetError(2, "ODBC驱动未安装", 0);如果ODBC驱动未安装返回 False
$c_Con = ObjCreate("ADODB.Connection")
If Not IsObj($c_Con) Then Return SetError(0, "启动数据库引擎失败", 0);如果启动失败则返回 False
$c_Con.open("DRIVER={SQL Server};SERVER=" & $c_Server & ";UID=" & $c_UserName & ";PWD=" & $c_UserPasswORd & ";")
If @error Then Return SetError(1, "启动数据库引擎失败", 0);如果连接成功返回 False
Return $c_Con;
EndFunc ;==>_SQL_Connect
Func _SQL_OpenDB(ByRef $c_Con, $c_DB_Name)
If Not IsObj($c_Con) Then Return SetError(2, "无效的数据库连接", 0)
$SQL_ERROR = ""
$c_Con.Execute("use " & $c_DB_Name)
If Not @error Then Return 1
EndFunc ;==>_SQL_OpenDB
Func _SQL_RegisterErrorHandler($Func = "_SQL_ErrFunc")
If ObjEvent("AutoIt.Error") = "" Then
$_SQL_OBJ_ERROR = ObjEvent("AutoIt.Error", $Func)
Return 1
Else
Return SetError(0, "错误跳转函数已经注册", 0)
EndIf
EndFunc ;==>_SQL_RegisterErrorHandler
|