Über Ausgabe eines IBQuery oder DBGrid iterieren
-
Moin
Ich möchte für eine Exportfunktion (Query Ergebnis in CSV) gerne über die Daten die ich aus einem IBQuery heraus bekomme iterieren (also zeilenweise von oben links nach unten rechts) und den Inhalt jeder "Zelle" auslesen. Leider gelingt mir das noch nicht so recht. Im Moment packe ich die Ergebnisse in ein DBGrid und versuche da drüber zu gehen, weiß aber noch nicht wie ich am Ende einer Zeile in die nächste komme (SelectedRows scheint man nur lesen, nicht schreiben zu können?)
Hat mir jemand einen Tip, wie ich da vorgehen könnte? Oder gibt es vielleicht einen klügeren Weg der gleich das IBQuery verwendet, ohne den Umweg über das DBGrid?
Wäre dankbar für ein paar Tips

Viele Grüße,
Banzai!
-
Hallo
Siehe TDataSet::First(), ::Next() und ::Eof, um alle zeilen zu iterieren.
Desweiteren TDataSet::Fields::Fields[] um die Spalten zu iterieren.bis bald
akari
-
Hi Akari et al.
Danke für den Tip, sowas hab ich gesucht!
So ganz will es allerdings noch nicht funktionieren. Ich gehe jetzt so vor dass ich die Query ausführe (Close() SQL-Clear() SQL->Add() Open()) und dann versuche auf das DataSet zuzugreifen. allerdings scheitert schon ein
int foo = Form1->Query1->DataSource->DataSet->Fields->Count;mit einer EAccessViolation. Darf ich da so direkt nicht drauf zugreifen? Oder muss ich vorher noch was mit dem IBQuery anstellen?
Viele Grüße,
Banzai!
-
Hallo
TQuery ist bereits ein DataSet
int foo = Form1->Query1->Fields->Count;Desweiteren must du dir gut überlegen, ob du das Form1-> wirklich brauchst. In den meisten Fällen (wo du in einer Methode von Form1 auf ein Element von Form1 zu greifen willst) nämlich nicht.
bis bald
akari