AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi CSV Dateiinahlt direkt ins TADODataSet schreiben?
Thema durchsuchen
Ansicht
Themen-Optionen

CSV Dateiinahlt direkt ins TADODataSet schreiben?

Ein Thema von Piro · begonnen am 17. Sep 2010 · letzter Beitrag vom 19. Sep 2010
 
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

AW: CSV Dateiinahlt direkt ins TADODataSet schreiben?

  Alt 18. Sep 2010, 21:57
So, ich habe das jetzt mal mit der Treiber probiert. Ich bekomme immer eine Fehlermeldung und ich kann sie nicht richtig interpretieren und den Fehler lösen. Hier mein Code:

Meine Schema.ini (im selben Verzeichnis)
Code:
[S510F_DELIVERY_PERF.TXT]
ColNameHeader = False
Format=Delimited(|)
Col1=b_nr Text
..
Delphi-Quellcode:
SQLConnection.ConnectionString := 'Driver={Microsoft Text-Treiber (*.txt; *.csv)};Extensions=asc,csv,tab,txt';
SQLConnection.LoginPrompt := False;
SQLConnection.DefaultDatabase := ExtractFilePath(OpenTextFileDialog.FileName); // Hier kommt der Pfad zu den CSV-Dateien rein
SQLConnection.Open // --> Hier kommt die Fehlermeldung

DSData.CommandText := 'Select * From S510F_DELIVERY_PERF.TXT';
DSData.Open;
Der Fehler lautet:
Zitat:
..ist eine Exception der Klasse EOleException mit der Meldung 'Ungültiges Attribut für die Verbindungszeichenfolge' aufgetreten.
Ich habe mir dann mit einer *.udl Datei mal meine Provider angeschaut und ich kann keine Microsoft Text-Treiber finden. Ist das schon die Ursache?

Ich habe dann mal Google befragt und folgende Möglichkeit gefunden.
Delphi-Quellcode:
SQLConnection.ConnectionString :=
            'Provider=Microsoft.Jet.OLEDB.4.0;' +
            'Data Source="'+ExtractFilePath(OpenTextFileDialog.FileName)+'"; ' +
            'Extended Properties="text;HDR=NO"';
SQLConnection.Open;

DSData.LockType := ltReadOnly;
DSData.CommandType := cmdText;
DSData.CommandText := 'Select * From S510F_DELIVERY_PERF.TXT';
DSData.Open;
Diese Methode funktioniert, ist aber sehr langsam. 5 Minuten für ca. 42000 Datensätze ist zu lange. Wenn ich die Datei einfach Zeile für Zeile lese und jedesmal die Zeile nach "|" splitte, geht es in Sekunden.

Habt ihr da eventuell ne Lösung? Die Daten landen letztendlich in einem VST.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz