- Offizieller Beitrag
Hi,
irgendjemand schon mal einen connect zu DB2 mit Autoit gemacht?
Wäre für ein Bsp sehr dankbar.
Mega
Hi,
irgendjemand schon mal einen connect zu DB2 mit Autoit gemacht?
Wäre für ein Bsp sehr dankbar.
Mega
Sorry,
leider nur Sqllite, Access und Mysql.
Würde mein Interesse aber auch anmelden.
MfG
Der_Doc
Hallo,
hast Du einen ODBC-Treiber für DB2? Dann sollte es über ADODB kein Problem sein!
Hi bernd,
vielen Dank für die Antwort. Habe es lokal auch mittlerweile hinbekommen. Als nächstes suche ich ein paar Möglichkeiten um UDFs zu schrieben um SQL absetzen zu können und den Inhalt der Tabellen anzeigen zu lassen.
Anschließend werde ich mal einen Connect gegen AIX und zOS versuchen.
; Initialize COM error handler
Global $oMyError = ObjEvent('AutoIt.Error', 'MyErrFunc')
Global $provider = 'IBMDADB2'
Global $IP = @ComputerName
Global $port = 50000
Global $DSN = 'MEGA'
Global $userID = 'db2admin'
Global $password = 'db2admin'
Global $Obj = _connectDB2($provider, $IP, $port, $DSN, $userID, $password)
_printDB2Recordset($Obj, 'SELECT * FROM customer')
Func _connectDB2($provider, $IP, $port, $DSN, $userID, $password)
Local $sqlCon = ObjCreate('ADODB.Connection')
$sqlCon.Mode = 16 ; Erlaubt im MultiUser-Bereich das öffnen anderer Verbindungen ohne Beschränkungen [Lesen/Schreiben/Beides]
$sqlCon.CursorLocation = 3 ; client side cursor Schreiben beim Clienten
$sqlCon.Open('Provider=' & $provider & ';IP=' & $IP & ';Port=' & $port & ';DSN=' & $DSN & ';User ID=' & $userID & ';Password=' & $password)
If @error Then Return -1
Return $sqlCon
EndFunc ;==>_connectDB2
Func _printDB2Recordset($sqlCon, $SQL)
Local $sqlRs = ObjCreate('ADODB.Recordset')
If Not @error Then
$sqlRs.open($SQL, $sqlCon)
If Not @error Then
;Loop until the end of file
While Not $sqlRs.EOF
;Retrieve data from the following fields
ConsoleWrite($sqlRs.Fields('FIRST_NAME' ).Value & @CRLF)
ConsoleWrite($sqlRs.Fields('COUNTRY' ).Value & @CRLF)
$sqlRs.MoveNext
WEnd
$sqlRs.close
EndIf
EndIf
EndFunc ;==>_printDB2Recordset
Func MyErrFunc()
$HexNumber = Hex($oMyError.number,
MsgBox(0, 'COM Test', 'We intercepted a COM Error !' & @CRLF & @CRLF & _
'err.description is: ' & @TAB & $oMyError.description & @CRLF & _
'err.windescription:' & @TAB & $oMyError.windescription & @CRLF & _
'err.number is: ' & @TAB & $HexNumber & @CRLF & _
'err.lastdllerror is: ' & @TAB & $oMyError.lastdllerror & @CRLF & _
'err.scriptline is: ' & @TAB & $oMyError.scriptline & @CRLF & _
'err.source is: ' & @TAB & $oMyError.source & @CRLF & _
'err.helpfile is: ' & @TAB & $oMyError.helpfile & @CRLF & _
'err.helpcontext is: ' & @TAB & $oMyError.helpcontext _
)
SetError(1) ; to check for after this function returns
EndFunc ;==>MyErrFunc
;~ _executeSQLonDB2Recordset($Obj, "insert into " & "Autoit" & "values('Xenobiologist', 'User')")
[/autoit] [autoit][/autoit] [autoit]Func _executeSQLonDB2Recordset($sqlCon, $SQL)
Local $sqlRs = ObjCreate('ADODB.Recordset')
$sqlRs.open('SELECT * FROM Autoit', $sqlCon)
If Not @error Then
$sqlRs.Source = "Select * From Autoit" ; ganze Tabelle
$sqlRs.AddNew ;'Neuen Datensatz erzeugen
;~ 'Beispiele für Zuweisung von Werten an Tabellenfelder
$sqlRs.Fields("Name") = "MEGA"
$sqlRs.Fields("Job") = "MEGAMAN"
$sqlRs.Update
$sqlRs.close
EndIf
EndFunc ;==>_executeSQLonDB2Recordset
Mega
Hi Xenobiologist,
mal ne Frage die net genau mit dem Thema SQL-Anbindung zu tun hat.
Woher bekommst du die Objektnamen der Funktionen
z.B.
$HexNumber = Hex($oMyError.number,
MsgBox(0, 'COM Test', 'We intercepted a COM Error !' & @CRLF & @CRLF & _
'err.description is: ' & @TAB & $oMyError.description & @CRLF & _
'err.windescription:' & @TAB & $oMyError.windescription & @CRLF & _
'err.number is: ' & @TAB & $HexNumber & @CRLF & _
'err.lastdllerror is: ' & @TAB & $oMyError.lastdllerror & @CRLF & _
'err.scriptline is: ' & @TAB & $oMyError.scriptline & @CRLF & _
'err.source is: ' & @TAB & $oMyError.source & @CRLF & _
'err.helpfile is: ' & @TAB & $oMyError.helpfile & @CRLF & _
'err.helpcontext is: ' & @TAB & $oMyError.helpcontext _
Alles das was z.B. hinter "$oMyError." steht. Woher weist du die (ich nene es mal) Objektnamen?
MfG
Der_Doc
$oMyError steht im Helpfile
Von anderen Objekten in der Doku oder mit oleview.exe und iviewers.dll
Hi,
danke für die Antwort.
Ich habe die beiden Tools gedownloadet und installiet. Aber ich kann doch nicht einfach in dll Diles oder EXE Files reinschauen.
Gibt es dafür ne Anleitung oder besser noch kennst du dich damit aus?
Wenn ja dann würde ich sagen wir machen ein neues Thema auf um Xenobiologist nicht von seinem Prob abzubringen.
MfG
Der_Doc