Daten in ein csv-File laden
franz
- vb-script
Hi Leute!
Ich habe folögendes Problem. Mit dem beiliegenden Script versuche ich Daten von einer Oracle-DB in ein csv-File zu bekommen. Dieses Script habe ich aus dem Internet von der Seite http://www.devtrain.de/news.aspx?artnr=506
Doch ich bekomme immer eine Fehlermeldung und weiß nicht wieso, die Zeile die ich als Fehler bekomme habe ich mit *** markiert.
Sub ExportToCSV(ConnString,SQLString,FileName)
Set Cn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Conn.Open ConnString
RS.Open SQLString, Conn
AnzahlSpalten = RS.Fields.Count - 1
Set oTS = oFSO.CreateTextFile("filename", True)
i = 0
strWertZeile = ""
For i = 0 To AnzahlSpalten
strWertZeile = strWertZeile & """" & RS.Fields(i).Name & ""","
Next
oTS.WriteLine strWertZeile *******Fehlerzeile*************
Do while RS.EOF
i = 0
strWertZeile = ""
For i = 0 To AnzahlSpalten
strWertZeile = strWertZeile & """" & RS.Fields(i) & ""","
Next
RS.MoveNext
strWertZeile = Left(strWertZeile, Len(strWertZeile)- 1)
oTS.WriteLine strWertZeile
Loop
oTS.Close
Set RS = Nothing
Set Conn = Nothing
Set oFSO = Nothing
end sub
Danke
Servus Franz
Doch ich bekomme immer eine Fehlermeldung und weiß nicht wieso, die Zeile die ich als Fehler bekomme habe ich mit *** markiert.
strWertZeile = strWertZeile & """" & RS.Fields(i).Name & ""","
Ich habe das zwar noch nie probiert, was Du vorhast, aberich tippe mal auf einen Fehler in dieser Zeile.
Das """" & RS.Fields(i).Name & """, sind irgendwie zuviele """"". Probier mal einen Festwert a'la
strWertZeile & "test"
Next
oTS.WriteLine strWertZeile *******Fehlerzeile*************
Danach weist Du mehr!
bydey
Hi!
nein das hilft nichts, die Fehlermeldung kommt noch immer aus der sleben ZEile
Servus
ich habe hier http://www.devtrain.de/news.aspx?artnr=310 mal für dich recherchiert und da gibt es einen entscheidenden Unterschied:
Set oTS = oFSO.CreateTextFile("filename", True)
set schreibeDatei = Datei.CreateTextFile(server.MapPath("textfile.txt"),ForWriting)
=> server.mappath !!!!!! und forwriting (~2)
teste mal das Beispiel auf dieser Seite ohne variablen in der textzeile damit du sicher bist das dein Objekt auch erzeugt wird!
bydey
Hallo miteinander,
es wäre vielleicht mal ganz nützlich, die Fehlermeldung zu posten.... nicht alle hier können immer hellsehen. :-)
Viele Grüße aus dem Süden, Frank
Hallo miteinander,
noch mal ich!
hier beißt sich aber ziemlich was...
Sub ExportToCSV(ConnString,SQLString,FileName)
.....
Set oTS = oFSO.CreateTextFile("filename", True)
BTW, CSV-Dateien sind nicht unbedingt state-of-the-art.
DDL (Data Definition Language) wäre da schon neuer und universaler anwendbar, man schreibt mehr oder weniger SQL in eine Textdatei: CREATE TABLE ... INSERT INTO ... INSERT INTO ....
die ADO-Komponente bietet die Möglichkeit, ein komplettes Recordset als XML Datei abzuspeichern, wo du
a) alle Spaltennamen
b) die genaue Datendefinition der Spalten
c) die Daten selbst
zusammen hast.
Dazu muß man kein XML können, sondern diese RecordsetXML wird einfach wieder (statt eines SQL-Statements) in ein Recordset.Open geladen...
warum so rückschrittlich mit CSV ?? ;-)
Viele Grüße aus dem Süden, Frank