thomas1263
Grünschnabel
Hallo,
ich will eine Datenbanktabelle auf einem SQL-Server mit VBS in einer Schleife auslesen und die ermittelten Werte für die Installation von Druckern weiterverwenden.
- Das Auslesen erfolgt nach der ID
Problem:
Gebe ich den String mit "wscript.echo objrs.getstring" aus funktioniert alles wie geplant.
Über gebe ich den String in eine Variable und gebe diese mit Wscript.Echo <Variable> aus, funktioniert es nicht mehr. (Zeile 43 -45)
Vielleicht könnt ihr mir weiterhelfen. Gerne auch mit einem anderen Vorschlag.
Script:
strTable = "printers"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNet = CreateObject("WScript.Network")
Set objcn = CreateObject("ADODB.Connection")
strdsn = "Provider=SQLOLEDB.1;Data Source=newyork;" & _
"Initial Catalog=<DB>;" & _
"user id=sa;password=<pwd>"
objcn.Open strdsn
'Ermittlung des Computernamens
strComputer = objNet.ComputerName
'Vorgabe für Variablen
strAdminPath = "C:"
'Zusammensetzung des Logfilenamens
strMydate = Year(Now) & Right("0" & Month(Now),2) & Right("0" & Day(Now),2) & "_"
strMydate = strMydate & Right("0" & Hour(Now),2) & Right("0" & Minute(Now),2) & Right("0" & Second(Now),2)
strLogfile = strAdminPath & "\" & "Druckerliste" & "_" & strMydate & ".Log"
'Erstellung des Logfiles
Set objLogfile = objFS.CreateTextFile(strLogfile)
intx = 1
'In einer Schleife die Daten auslesen und jeden Drucker der activ ist anlegen (EOF beachten)
Do
sql = "select * from printers where id =" & intx
WScript.Sleep 200
Set objrs = objcn.Execute(sql)
On Error Resume Next
' WScript.Echo objrs.GetString
strPrinter = objrs.GetString
WScript.Echo strPrinter
On Error Goto 0
'Inhalt des Strings in einzelne Werte auftrennen
'strPrinterDaten = Split(strPrinter, vbTab)
'test0 = strPrinterDaten(0)
'test1 = strPrinterDaten(1)
'test2 = strPrinterDaten(2)
'test3 = strPrinterDaten(3)
'test4 = strPrinterDaten(4)
'test5 = strPrinterDaten(5)
'test6 = strPrinterDaten(6)
'test7 = strPrinterDaten(7)
'Testweise ausgeben
'WScript.Echo test0 &" " & test1 &" " & test2 &" " & test3 &" " & test5 &" " & test6 &" " & test7
WScript.Sleep 200
intx = intx + 1
Loop
objcn.close
ich will eine Datenbanktabelle auf einem SQL-Server mit VBS in einer Schleife auslesen und die ermittelten Werte für die Installation von Druckern weiterverwenden.
- Das Auslesen erfolgt nach der ID
Problem:
Gebe ich den String mit "wscript.echo objrs.getstring" aus funktioniert alles wie geplant.
Über gebe ich den String in eine Variable und gebe diese mit Wscript.Echo <Variable> aus, funktioniert es nicht mehr. (Zeile 43 -45)
Vielleicht könnt ihr mir weiterhelfen. Gerne auch mit einem anderen Vorschlag.
Script:
strTable = "printers"
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objNet = CreateObject("WScript.Network")
Set objcn = CreateObject("ADODB.Connection")
strdsn = "Provider=SQLOLEDB.1;Data Source=newyork;" & _
"Initial Catalog=<DB>;" & _
"user id=sa;password=<pwd>"
objcn.Open strdsn
'Ermittlung des Computernamens
strComputer = objNet.ComputerName
'Vorgabe für Variablen
strAdminPath = "C:"
'Zusammensetzung des Logfilenamens
strMydate = Year(Now) & Right("0" & Month(Now),2) & Right("0" & Day(Now),2) & "_"
strMydate = strMydate & Right("0" & Hour(Now),2) & Right("0" & Minute(Now),2) & Right("0" & Second(Now),2)
strLogfile = strAdminPath & "\" & "Druckerliste" & "_" & strMydate & ".Log"
'Erstellung des Logfiles
Set objLogfile = objFS.CreateTextFile(strLogfile)
intx = 1
'In einer Schleife die Daten auslesen und jeden Drucker der activ ist anlegen (EOF beachten)
Do
sql = "select * from printers where id =" & intx
WScript.Sleep 200
Set objrs = objcn.Execute(sql)
On Error Resume Next
' WScript.Echo objrs.GetString
strPrinter = objrs.GetString
WScript.Echo strPrinter
On Error Goto 0
'Inhalt des Strings in einzelne Werte auftrennen
'strPrinterDaten = Split(strPrinter, vbTab)
'test0 = strPrinterDaten(0)
'test1 = strPrinterDaten(1)
'test2 = strPrinterDaten(2)
'test3 = strPrinterDaten(3)
'test4 = strPrinterDaten(4)
'test5 = strPrinterDaten(5)
'test6 = strPrinterDaten(6)
'test7 = strPrinterDaten(7)
'Testweise ausgeben
'WScript.Echo test0 &" " & test1 &" " & test2 &" " & test3 &" " & test5 &" " & test6 &" " & test7
WScript.Sleep 200
intx = intx + 1
Loop
objcn.close