mikroschwamm
Goto Top

MS SQL Abfrage mit AutoIT

Ausgabe der Abfrage mit einer AutoIT UDF

Hallo zusammen,

ich bin gerade dabei ein AutoIT Script zu entwerfen, mit dem ich auf einem MS SQL Server Abfragen durchführen kann. Ich habe entzwischen mit Hilfe von diversen Foren eine UDF (user definied function) in der ich die Funktionen für Verbindung, Query und Verbindungsabbau definiert habe.
Jetzt kommt das Problem:
Ich würde gerne das Ergebnis des Querys in einer Messagebox ausgeben, allerdings funktioniert das nicht. Der Body der Meldung bleibt leer, obwohl die Variable $query nicht = NULL ist??
Verbinden kann ich mich auf den Server und einen query kann ich auch absetzen.

Hier mal meine UDF:

;Stellt die verbindung her
;Beispiel: $sql = _SQLCon(127.0.0.1, user, pass, MyDB)

Func _SQLCon($scIP, $scUser, $scPass, $scDB)
$sqlCon = ObjCreate("ADODB.Connection")
$sqlCon.Open("Provider=SQLOLEDB; Data Source=" & $scIP & "; User ID=" & $scUser & "; Password=" & $scPass & "; database=" & $scDB & ";")
Return $sqlCon
EndFunc
;Funktion für Query
;Beispiel: _SQLQuery($sql, "INSERT INTO (id, name, age) VALUES (1, admin, 55)")
Func _SQLQuery($iSQLCon, $iQuery)
If IsObj($iSQLCon) Then
Return $iSQLCon.execute($iQuery)
EndIf
EndFunc
Beschreibung: Beendet die Verbindung zum Microsoft SQL Server
Func _SQLEnd($sqlCon)
If IsObj($sqlCon) Then
$sqlCon.close
EndIf
EndFunc

Hier mein Abfrage Script:

#include "_MSSQLFunction.au3"
$adCN = ObjCreate("ADODB.Connection")
$sql_server="127.0.0.1\TESTINSTANZ"
$sql_db="TestDB"
$sql_user="sa"
$sql_pass="Passwort"
$adCN.Open("DRIVER={SQL Server};SERVER=" & $sql_server & ";DATABASE=" & $sql_db & ";uid=" & $sql_user & ";pwd=" & $sql_pass & ";")
$query = $adCN.Execute("SELECT Computername FROM logs WHERE [MAC-Adress]='xx-xx-xx-xx-xx-xx';")
;Ausgabe
MsgBox(0, "Ergebnis", "Computername = " & $query)

Hat jemand eine Ahnung weshalb das so ist? Besten Dank!

Gruß Mikroschwamm
Kommentar vom Moderator Biber am 20.04.2010 um 20:45:23 Uhr
Verschoben von "Programmiersprachen" nach "Datenbanken".

Content-ID: 138848

Url: https://administrator.de/contentid/138848

Ausgedruckt am: 06.11.2024 um 01:11 Uhr

bstefan82
bstefan82 22.03.2010 um 17:55:50 Uhr
Goto Top
Ich würde mal darauf tippen das query nicht Type string sondern nen adodb.recordset (oder so) ist....
mikroschwamm
mikroschwamm 23.03.2010 um 08:28:27 Uhr
Goto Top
wunderbar, es hat geklappt! Vielen Dank! Ich habe folgende Ergänzung vorgenommen...

;Ausgabe

$array = $query.GetRows
If Not IsArray($array) Then
MsgBox(0, 'Array', 'kein Ergebnis')
_close()
EndIf

_ArrayDisplay($array, 'Alle Spalten')