franz: Daten in ein csv-File laden

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

  1. 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

    1. Hi!

      nein das hilft nichts, die Fehlermeldung kommt noch immer aus der sleben ZEile

      1. 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

  2. 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

  3. 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