AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wenn Table1 durchlaufen ist dann weiter zur table2 usw.
Thema durchsuchen
Ansicht
Themen-Optionen

Wenn Table1 durchlaufen ist dann weiter zur table2 usw.

Ein Thema von MkA2k · begonnen am 5. Nov 2006 · letzter Beitrag vom 6. Nov 2006
Antwort Antwort
MkA2k

Registriert seit: 20. Okt 2006
9 Beiträge
 
#1

Wenn Table1 durchlaufen ist dann weiter zur table2 usw.

  Alt 5. Nov 2006, 22:05
Datenbank: MYSQL • Version: 5.0.18 • Zugriff über: ADO
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:
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;
Sorry das der Code schlampig formatiert ist, aber ich hab schon x Varianten ausprobiert und dabei ist die formatierung verloren gegangen

Ich Danke euch!!

MfG

MkA2k
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wenn Table1 durchlaufen ist dann weiter zur table2 usw.

  Alt 6. Nov 2006, 12:16
Ja, sehr schlampig !

in deiner RowTab Schleife fehlt was
Delphi-Quellcode:
with Query do
begin
  Open;
  try
    while not EOF do
    begin
       // bla

      Next;
    end;
  finally
    Close;
  end;
end;
Heiko
Heiko
  Mit Zitat antworten Zitat
MkA2k

Registriert seit: 20. Okt 2006
9 Beiträge
 
#3

Re: Wenn Table1 durchlaufen ist dann weiter zur table2 usw.

  Alt 6. Nov 2006, 13:11
Hi Heiko

Zitat:
Ja, sehr schlampig !
ich bin halt ne alte Schlampe

Werde heute Abend deinen Vorschlag ausprobieren, dankeschön

Gruß

MkA2k
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz