void __fastcall TForm1::SaveToCSV(TQuery *Abfrage)
{
TStringList *Spaltenbezeichner, *Ausgabe;
AnsiString Bezeichner, Inhalt;
Spaltenbezeichner = new TStringList;
Ausgabe = new TStringList;
// ermittle die Spaltenbezeichner
Abfrage->GetFieldNames(Spaltenbezeichner);
for (int Spalte=0; Spalte < Spaltenbezeichner->Count; Spalte++)
{
Bezeichner += Spaltenbezeichner->Strings[Spalte] + ";";
}
// schreibe die Bezeichner ins AusgabeStringlistenObjekt
Ausgabe->SetText(Bezeichner.c_str());
delete Spaltenbezeichner;
Abfrage->First();
// ermittle die Einträge aus aktuellem Datensatz
for (int Zeile=0; Zeile < Abfrage->RecordCount; Zeile++)
{
for (int Spalte = 0; Spalte < Abfrage->Fields->Count; Spalte++)
{
//gehe zur nächsten Zeile des Abfrageobjekts
//schreibe Zeile in String durch ; getrennt
Inhalt += Abfrage->Fields->Fields[Spalte]->AsString + ";";
}
// schreibe Zeile in AusgabeStringlistenobjekt
Ausgabe->Append(Inhalt);
// leere String -> für Werte aus neuer Zeile
Inhalt = "";
// gehe zu nächstem Datensatz
Abfrage->Next();
}
// speichere Inhalt als CSV-Datei
Ausgabe->SaveToFile("c:\\Ausgabedatei.csv");
Application->MessageBox("Datei wurde erfolgreich gespeichert", "Hinweis", MB_OK);
delete Ausgabe;
}