Hallo liebe Community,
Ich habe ein Tool geschrieben, um einige Aufgaben mit einem SQL Server (MSSQL) zu erledigen.
Eine Abfrage davon ist sehr groß und ich kriege diesen Fehler:
==> The requested action with this object has failed.:
Return $iSQLCon.execute($iQuery)
Return $iSQLCon.execute($iQuery)^ ERROR
Das Problem ist, das ich eigentlich einen Com Error Handler "eingebaut" habe, der mir ja den Fehler anzeigen soll.
Der Error Handler wird am Anfang des Scripts initialisiert
Global $o_MyError = ObjEvent("AutoIt.Error", "MyErrFunc") ; Initialize a COM error handler
[/autoit]
Und die Funktion sieht so aus:
Func _MyErrFunc()
Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $o_MyError.description & @CRLF & _
"err.windescription:" & @TAB & $o_MyError.windescription & @CRLF & _
"err.number is: " & @TAB & hex($o_MyError.number,8) & @CRLF & _
"err.lastdllerror is: " & @TAB & $o_MyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $o_MyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $o_MyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $o_MyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $o_MyError.helpcontext _
)
EndFunc ;==>_MyErrFunc
Aber wie gesagt, der Fehler wird nicht darüber abgefangen.
Hier noch die _MSSQL_Open Funktion, die das Objekt erstellt, vielleicht liegt es ja auch daran
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 & ";")
If @error Then Return SetError(1,0,0)
Return $sqlCon
EndFunc ;==>_MSSQL_Con
Ich würde mich über eine Antwort wirklich sehr freuen!
--EDIT--
Das SQL Statement wird, wenn ich es direkt über den Server ausführe, erfolgreich abgeschlossen. Kann es an der Größe des SQL Statements liegen? Das Statement ist 665 Zeilen (~ 94000 Zeichen) lang