Hi Leute,
ich arbeite derzeit an einem Projekt in der Firma. Hierfür muss ich ein Skript schreiben, dass anhand des am Terminalserver
eingeloggten Benutzers erkennt, welche "Attribute" er besitzt. Diese werden aus einer Sybase SQL Datenbank ausgelesen.
Wichtiger Skriptteil:
[autoit]$dbconnect = ObjCreate("ADODB.Connection")
[/autoit][autoit][/autoit][autoit]$dbconnect.Open("DSN=TESTODBC")
[/autoit][autoit][/autoit][autoit]$result = $dbconnect.execute("SELECT Benutzer, Datenbank FROM Testtabelle Where Benutzer='" & $User & "'")
[/autoit][autoit][/autoit][autoit]$DB = "XXX" & $result.Fields("Datenbank").Value
[/autoit][autoit][/autoit][autoit][/autoit]Das Problem entsteht in der letzten Zeile. Wenn der Select Befehl etwas findet, dann ist alles in Ordnung und die Variable richtig gefüllt.
Wenn jetzt aber nichts gefunden ist, dann bricht AutoIT mit dem Fehler ab:
Spoiler anzeigen
The requested action with this object has failed.:
$DB = "XXX" & $result.Fields("Datenbank").Value Then
$DB = "XXX" & $result.Fields("Datenbank").Value ^ ERROR
Meine Frage deshalb:
Wie kann ich Abfragen ob dieser "Objekt-Teil" überhaupt existiert oder wie lasse ich AutoIT diesen Fehler ignorieren?
Ausprobiert habe ich
[autoit]If $result.Fields("Benutzer").Value <> 0 Then
[/autoit]
Bricht mit dem genannten Fehler ab.
Und
[autoit]IsObj($result)
[/autoit]
ist leider immer 1.
Gruß
Prajoss
PS: Hoffe ich habs verständlich genug rübergebracht und Hilfe habe ich schon durchsucht aber nichts passendes gefunden.