Работаю с БД Postgres в Autoit через ODBC драйвер, все хорошо, но если пропадает коннект с БД, то скрипт не сумев подключиться к БД вылетает с ошибкой
Вот код подключения к БД
В самой функции подключения к БД ошибки обрабатываются какие то, но при пропадании конекта к базе по локальной сети, все вылетает с ошибкой.
вот сама ошибка
C:\Users\Autoit_project\DB_func.au3 (40) : ==> The requested action with this object has failed.:
If $fAuthMode Then $oConn.Open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";")
If $fAuthMode Then $oConn.Open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";")^ ERROR
->20:13:57 AutoIT3.exe ended.rc:1
Как сделать обработку этой ошибки, хочу в итоге или выводить всплывающее окно о проблеме или делать повторное подключение, главное чтобы скрипт не завершался аварийно.
Вот код подключения к БД
Код:
;===============================================================================
;
; Function Name: _SQLConnect
; Description: Initiate a connection to a SQL database
; Syntax: $oConn = _SQLConnect($sServer, $sDatabase, $fAuthMode = 0, $sUsername = "", $sPassword = "", _
; $sDriver = "{SQL Server}")
; Parameter(s): $sServer - The server your database is on
; $sDatabase - Database to connect to
; $fAuthMode - Authorization mode (0 = Windows Logon, 1 = SQL) (default = 0)
; $sUsername - The username to connect to the database with (default = "")
; $sPassword - The password to connect to the database with (default = "")
; $sDriver (optional) the ODBC driver to use (default = "{SQL Server}")
; Requirement(s): Autoit 3 with COM support
; Return Value(s): On success - returns the connection object for subsequent SQL calls
; On failure - returns 0 and sets @error:
; @error=1 - Error opening database connection
; @error=2 - ODBC driver not installed
; @error=3 - ODBC connection failed
; Author(s): SEO and unknown
; Note(s): None
;
;===============================================================================
Func _SQLConnect($sServer, $sDatabase, $fAuthMode = 0, $sUsername = "", $sPassword = "", $sDriver = "{SQL Server}")
Local $sTemp = StringMid($sDriver, 2, StringLen($sDriver) - 2)
Local $sKey = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $sVal = RegRead($sKey, $sTemp)
If @error or $sVal = "" Then Return SetError(2, 0, 0)
$oConn = ObjCreate("ADODB.Connection")
If NOT IsObj($oConn) Then Return SetError(3, 0, 0)
If $fAuthMode Then $oConn.Open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";")
If NOT $fAuthMode Then $oConn.Open("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase)
If @error Then Return SetError(1, 0, 0)
Return $oConn
EndFunc ;==>_SQLConnect
В самой функции подключения к БД ошибки обрабатываются какие то, но при пропадании конекта к базе по локальной сети, все вылетает с ошибкой.
вот сама ошибка
C:\Users\Autoit_project\DB_func.au3 (40) : ==> The requested action with this object has failed.:
If $fAuthMode Then $oConn.Open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";")
If $fAuthMode Then $oConn.Open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";")^ ERROR
->20:13:57 AutoIT3.exe ended.rc:1
Как сделать обработку этой ошибки, хочу в итоге или выводить всплывающее окно о проблеме или делать повторное подключение, главное чтобы скрипт не завершался аварийно.