Einzelnen Beitrag anzeigen

Benutzerbild von Barret
Barret

Registriert seit: 27. Mai 2004
53 Beiträge
 
#1

Query-Durchlauf funktioniert nicht richtgi

  Alt 19. Aug 2009, 08:03
Datenbank: MySQL • Zugriff über: ADO
Morgen!

ich habe da ein kleines Problem. Ich habe eine Datenbank mit veranstaltungen. Jetz möchte ich Auswerten (in eine Datei schreiben). Soweit funktioniert auch alles super (Datei schreiben, die richtigen Einträge filtern, etc.).

Problem is nur, dass meine Query nicht richtig durchlaufen wird. Ich habe einen Start-Tag. Von diesem diesem wird dan immer jeweils alle Veranstaltungen die an einem Tag sind aufgezählt und dan ist der kommende Tag drann. Aussehen soll das so:

Freitag, 14. Aug
Ort: Name, ...

Freitag, 15. Aug
Ort: Name, ...
Ort: Name, ...

Freitag, 18. Aug
Ort: Name, ...
Ort: Name, ...


Die Stings die unter den jeweiligen Tagen kommen baue ich auch richtig zusammen. Mein Problem is nur, wenn ich Veranstaltungen habe die über mehrere Tage gehen sollen diese auch in ALLEN Tagen der Zeitspanne stehen. Wenn ich nur ein Result in der Query habe funktioniert es auch. Bei mehreren Ergebnissen zeigt er mir immer nur den ersten Tag der Veranstaltung an.
Das Verwirrt mich ein wenig.

(oben steht noch with query do und first)
Delphi-Quellcode:
  bAusgabe := false; //bestimmen ob das Enddatum erreicht ist (Abbruch der Schleife)
  bDatumAusgabe := false; //Bestimmen ob Datum schon als Tagesüberschrift angezeigt wird
  dAusgabe := FieldByName('datum_von').AsDateTime;

  while bAusgabe = false do
  begin
    if ((dAusgabe >= FieldByName('datum_von').AsDateTime) AND (dAusgabe <= FieldByName('datum_bis').AsDateTime)) then
    begin
      if (bDatumAusgabe = false) then
      begin
        bDatumAusgabe := true;

        ShortDateFormat := 'dddd, dd. mmm';
        LBText.Items.Add('');
        LBText.Items.Add(DateToStr(dAusgabe));
        ShortDateFormat := 'yyyy-mm-dd';
      end;

               //String zusammenbauen und ausgeben ....

    end;


    if Eof then
    begin
      if (dAusgabe = trunc(DTPBis.Date)) then
        bAusgabe := true;

        First;
        bDatumAusgabe := false;
        dAusgabe := dAusgabe + 1;
    end;

    Next;
  end;
  Mit Zitat antworten Zitat