Autor Beitrag
Morpheus1572
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Fr 14.11.08 08:39 
Moin Leutz,

Sorry, ich habe keine Ahnung wie ich das Thema sonst hätte benennen sollen. Hier also mein Problem.

Ich steh in Mitten von vielen Bäumen und würde gerne mal den Wald sehen...

Also:

Mittels eines ADOQuerys hole ich mir bestimmte daten aus der DB. Diese Daten in einem ADOGrid anzuzeigen ist simpel. Wenn ich bestimmte infos haben möchte, nutze ich folgendes Konstrukt:

ausblenden Delphi-Quelltext
1:
2:
3:
  ADOQuery4.Active:=true;
  ds := DataSource4.DataSet;
  test := ds['Straße'];


Nun kann ich mit test rumspielen, da steht nun der ertste wert drin. Wie komme ich aber an die restlichen - z.b. 5 werte ran??? Die werde mir im Grid angezeigt aber wie kann ich die so abfangen???

Grund: ich muss diese Werte drucken.

Ich denke mein Problem ist simpel aber ich steh wie gesagt im Wald ... ... ...

Thx für eure Hilfe.

Morph.
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Fr 14.11.08 09:29 
Hier ist der Wald :-)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for i := 0 to ds.FieldCount - 1 do
begin
  txt := ds.FieldByName(i).AsString;
  ...
end;
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Fr 14.11.08 09:55 
Äh, danke für die schnelle antwort...

Nur bekomme ich bei ds. keine annähernd entsprechende auswahl. was mache ich falsch?

Gruß Morph.

Nachtrag um das zu Kommentieren:

for i .... klappt noch! ABER bei der Zuweisung für die StringVariable txt bekomme ich die FieldByName sache nicht. sehr wohl aber, wenn ich ds. völlig alleine "hinstelle"...
Morpheus1572 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 157

Win XP
Delphi 7
BeitragVerfasst: Fr 14.11.08 11:11 
So, habe es jetzt erst mal so gelöst. ist aber noch nicht so wie ich es brauche....

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
      ds := DataSource4.DataSet;
      for zz := 1 to ds.RecordCount do
      begin
        for sz := 0 to ds.FieldCount -1 do
        begin
          test := ds.Fields[sz].AsString;
          PrintTab(test);
        end;
        NewLine;
      end;


Die sz-Schleife gibt mir brav die werte der ersten Zeile (zz-Schleife) aus.

zz: im ersten Query-durchlauf gleich 11
sz: im ersten Query-durchlauf gleich 4

die 4 werte in der zeile gibt er mir also korrekt wieder.
jedoch gibt er mir diese zeile genau 11 mal aus. jedoch müssen in den anderen zeilen andere inhalte stehen...!!!


Help, please!
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 14.11.08 11:47 
Dem Dataset mußt Du noch sagen, das es eine Zeile weiter springen soll. So geht das:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
MyDataSet.Active := True;

MyDataSet.First; // nicht nötig, aber schön
While Not MyDataSet.Eof Do Begin // Solange wir noch nicht am Ende sind
  // Tu eas mit den Feldern, z.B.
  // WriteLn(MyDataset['Name']);
  MyDataSet.Next; // Datensatzzeiger um eins nach vorne
End;

_________________
Na denn, dann. Bis dann, denn.