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
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
Please also mark the comments that contributed to the solution of the article
Kommentar vom Moderator Biber am Apr 20, 2010 um 18:45:23 Uhr
Verschoben von "Programmiersprachen" nach "Datenbanken".
Content-Key: 138848
Url: https://administrator.de/contentid/138848
Printed on: April 19, 2024 at 13:04 o'clock
2 Comments
Latest comment