Hallo zusammen,
ich habe jetzt schon ein paar Jahre nichts mehr mit Autoit gemacht und bräuchte mal eure Hilfe. Ich habe ein altes Script, welches diverse Datenbanken der Reihe nach andockt und dort eine oder mehrere Abfragen machen. Jetzt ist es aber so, das unsere Datenbank Admins ab und zu mal die Datenbanken auf andere Systeme verlagern, sodass die IP Adresse nicht mehr passt und dadurch mein Script auf die Nase fällt.
Mit der Funktion _MSSQL_Con aus MSSQL.au3 erstelle ich ja meine Datenbankverbindung
Func _MSSQL_Con($scIP, $scUser, $scPass, $scDB)
Local $sqlCon
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
Return $sqlCon
EndFunc ;==>_MSSQL_Con
Wie kann ich denn jetzt prüfen, ob Return $sqlCon erfolgreich war, oder nicht.
Wenn es nicht erfolgreich ist, fliegt mir aktuell mein Script weg. Ich würde das gerne aber so lösen, das ich zumindest an dieser Stelle das irgendwie abfangen kann und mir via Messagebox mitteilen lassen kann, das diese Verbindung fehlerhaft ist. Schön wäre es dann noch, wenn das Script dann trotzdem mit den restlichen Datenbanken weiterlaufen würde.
Hier noch ein Beispiel von einer meiner Datenbankverbindungen
If $SelectedDatabase = "ABC" Then
$URL = "https://www.platzhalter.fqdn/abc/"
$IP = $IP3
$USER = "abcuser"
$PASSWORD = "abcpasswort"
$DB = "abcdb"
$sqlCon = _MSSQL_Con($IP, $USER, $PASSWORD, $DB) ; IP, User, PW, DB
ConsoleWrite("$sqlCon bei ABC ist: " & $sqlCon & @CRLF)
EndIf
Leider komme ich aktuell nicht bis zum ConsoleWrite. Wenn ich das Script mit F5 laufen lasse, fliege ich aktuell so raus
"C:\Program Files (x86)\AutoIt3\Include\MSSQL.au3" (434) : ==> The requested action with this object has failed.:
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
$sqlCon^ ERROR
->10:08:36 AutoIt3.exe ended.rc:1
+>10:08:36 AutoIt3Wrapper Finished
Danke für eure Tipps