Problem beim Auslesen einer SQL DB Tabelle mit VBS

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
 
Guten Morgen,

zum Thema gibts ja paar Beispiele im Internet. Was passiert denn wenn du in deinem Script
WScript.Echo objrs("<Spaltenname>") ausgibst?
das ganze kannste ja in die While Schleife packen:

Do While Not objrs.eof
WScript.Echo objrs("<Spaltenname>")
objrs.movenext
Loop

und so ausgeben oder halt Datensatzweise verarbeiten wie du es wünschst. Macht wenns funktioniert vielleichtt mehr Sinn als nen RecordSet zu nem String zu zerhacken und den dann wieder zu zerlegen. Versuchs mal. Ansonsten nochma melden.
 
freut mich,
markier den Thread bitte noch als erledigt und Viel Spass und Erfolg bei weiteren Projekten.
 

Neue Beiträge

Zurück