Je rencontre actuellement un problème avec l'UDF suivant : https://www.autoitscript.com/forum/topi ... ysql-udfs/
Dans le code de cet UDF on peux observer ça :
Func _MySQLConnect($sUsername, $sPassword, $sDatabase, $sServer, $sDriver = "{MySQL ODBC 3.51 Driver}", $iPort=3306)
Local $v = StringMid($sDriver, 2, StringLen($sDriver) - 2)
Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $v)
If @error or $val = "" Then
SetError(2)
Return 0
EndIf
$ObjConn = ObjCreate("ADODB.Connection")
$Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)
If @error Then
SetError(1)
Return 0
Else
Return $ObjConn
EndIf
EndFunc
Local $v = StringMid($sDriver, 2, StringLen($sDriver) - 2)
Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $v)
If @error or $val = "" Then
SetError(2)
Return 0
EndIf
$ObjConn = ObjCreate("ADODB.Connection")
$Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)
If @error Then
SetError(1)
Return 0
Else
Return $ObjConn
EndIf
EndFunc
Cependant si les identifiants sont incorrectes (récupérés via un GUI/Input), le code plante au niveau de $Objconn.open(), la condition @error n'est donc jamais atteinte.
Une idée de comment handle cette particularité pour permettre à l'utilisateur de corriger ses identifiants sans que l'application ne plante à la moindre erreur ?