![]() |
Datenbank: MYSQL • Version: 5.0.18 • Zugriff über: ADO
Wenn Table1 durchlaufen ist dann weiter zur table2 usw.
Hi,
ich stehe vor einem Problem. Ich möchte gerne von mehrern Tabellen die Zeile einzeln berechen und erst wenn die Tabelle am ende ist soll es zur nächsten gehn, leider liest er mir nur die erste Zeile aus und geht dann gleich zur nächsten Tabelle. Ich denke ich hab da einen kleinen Logikfehler mit den For Schleifen.
Delphi-Quellcode:
Sorry das der Code schlampig formatiert ist, aber ich hab schon x Varianten ausprobiert und dabei ist die formatierung verloren gegangen :cry:
procedure tfrm_totalstd.listing;
var start,ende,pause : TDateTime; i,j,row_tab : Integer; totalmon :string; a:real; list:tlist; begin totalstd.Clear; list := Tlist.Create; //table mit monat,jahr und monatsstd mainform.query.SQL.Text := 'SELECT * FROM opt'; mainform.sqlconnect.Connected := TRUE; mainform.query.Open; While Not mainform.query.Eof do begin with lv.Items.Add do begin caption:=(mainform.query.fieldByName('monat').AsString); SubItems.Add(mainform.query.fieldByName('jahr').AsString); SubItems.Add(mainform.query.FieldByName('m_std').AsString); mainform.query.Next; end; end; for i:=0 to lv.Items.Count-1 do begin mainform.query.SQL.Text := 'SELECT count(*)as Anzahl FROM '+lv.items[i].caption+'_'+AnsiReplaceStr(lv.Items[i].SubItems[0], '20', '')+''; mainform.query.Open; row_tab := mainform.query.fieldByName('Anzahl').AsInteger; mainform.query.Close; for j:=0 to row_tab do begin mainform.query.SQL.Text := 'SELECT * FROM '+lv.items[i].caption+'_'+AnsiReplaceStr(lv.Items[i].SubItems[0], '20', '')+''; mainform.query.Open; start := StrToTime(mainform.query.FieldByName('beginn').AsString); ende := StrToTime(mainform.Query.FieldByName('ende').AsString); pause := StrToTime(mainform.query.fieldbyName('pause').AsString); totalmon:=FloatToStr(24*(ende-start-pause)); listbox1.Items.Add(totalmon); mainform.query.next; //list.Add(totalmon); end; with totalstd.Items.Add do begin Caption :=lv.Items[i].Caption+' - '+lv.Items[i].SubItems[0]; SubItems.Add(lv.Items[i].SubItems[1]); // subitems.Add(floattostr(a)); end; end; end; Ich Danke euch!! MfG MkA2k |
Re: Wenn Table1 durchlaufen ist dann weiter zur table2 usw.
Ja, sehr schlampig !
in deiner RowTab Schleife fehlt was
Delphi-Quellcode:
Heiko
with Query do
begin Open; try while not EOF do begin // bla Next; end; finally Close; end; end; |
Re: Wenn Table1 durchlaufen ist dann weiter zur table2 usw.
Hi Heiko
Zitat:
Werde heute Abend deinen Vorschlag ausprobieren, dankeschön Gruß MkA2k |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz