Hallo Jürgen,
eine korrekte
CSV-Datei könntest du auch so erzeugen:
Delphi-Quellcode:
procedure ValuesToStrings(fields: TFields; s: TStrings);
var
i: Integer;
begin
s.Clear;
for i := 0
to Pred(fields.Count)
do
s.Add(fields[i].AsString);
end;
procedure SaveAsCSV(
const select, fn:
string; delimiter, quoteChar: Char);
var
s: TStrings;
fs: TStream;
line:
string;
begin
s := TStringList.Create;
s.Delimiter := delimiter;
s.QuoteChar := quoteChar;
fs := TFileStream.Create(fn, fmCreate);
with TQuery.Create(
nil)
do
try
DatabaseName := '
my_nice_DB_Name';
SQL.Text := select;
Open;
// WriteNames ?
while not Eof
do
begin
ValuesToStrings(Fields, s);
line := s.CommaText + sLineBreak;
fs.
Write(line[1], Length(line));
Next;
Application.ProcessMessages;
end;
Close;
finally
Free;
fs.Free;
s.Free;
end;
end;
Dabei werden die üblichen Besonderheiten bereits berücksichtigt. Der Code muss sicher noch etwas poliert werden und ist nicht getestet, sollte aber zeigen worauf es ankommt.
Freundliche Grüße