Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: DB-Tabelle als Text mit Tab getrennt ausgeben.

  Alt 21. Mär 2007, 15:39
Du machst gleich mehrere Fehler:
1.) SQL-Anweisungen sollten innerhalb eines Datenmoduls gekapselt bleiben um in der Anwendung möglichst wenige Abhängigkeiten zu haben
2.) Wenn man Daten als CSV rausschreiben möchte, dann sollte man eine einzige Query schreiben, die alle Daten über SQL JOINS verknüpft.
Du verwendest 2 Queries; das ist schlecht (langsam).
3.) Um Daten per CSV zu schreiben, sollte man eine eigene Procedure mit Übergabeparameter erstellen.
z.B.
procedure WriteCsvFile(ds:TDataset; const filename:string; delimiter:char); Anstatt jeden Datensatz einzeln mit writeln rauszuschreiben ist es bestimmt schneller, alle Daten in einer Stringliste zu sammeln und auf einen Rutsch mit .SaveToFile() zu schreiben.

PS: Bei sehr grossen Datenmengen muss man die Stringliste nach ~ 1000 bis 10000 Datensätzen an die Datei anhängen und dann wieder leeren um eine extreme Speicherbelastung zu vermeiden.
Andreas
  Mit Zitat antworten Zitat