Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Endlos Schleife (https://www.delphipraxis.net/178119-endlos-schleife.html)

ngott2 18. Dez 2013 14:03

Endlos Schleife
 
Hallo, liebe Community.
Ich habe eine Schleife gebaut die aus irgend einem Grund eine Endlosschleife ist.
Die Bedingung bei einer While Schleife geht. Aber er muss leider mindestens einmal Durchlaufen.
Habe ich irgendwo einen Denkfehler.


Code:
repeat
    DokumentID.ID := Query.FieldByName('DID').AsInteger;  // DID =DocumentID
    DokumentID.ID := Query.FieldByName('CID').AsInteger; // CID = CompanyID
    Result.Add(DocumentID);
    query.Next
  until (not query.Eof);
Hier ist noch meine Sql Anweisung
Code:
Query.SQL.Text := 'Select ID As DID ,CompanyID As CID from [Document] Where Status = 1 and LoadForEmployee = false Order By CompanyID';
Danke im Voraus.

Mikkey 18. Dez 2013 14:05

AW: Endlos Schleife
 
nehme ein "not" heraus, dann wird ein Schuh draus

DeddyH 18. Dez 2013 14:07

AW: Endlos Schleife
 
Zitat:

Delphi-Quellcode:
until (not query.Eof);

Ob das so stimmt?

sirius 18. Dez 2013 14:07

AW: Endlos Schleife
 
Delphi-Quellcode:
until (query.Eof);
Bei einem oder keinem Eintrag wird das sonst zu einer Endlosschleife.

DeddyH 18. Dez 2013 14:10

AW: Endlos Schleife
 
Wobei ich mich frage, ob der Fußschleifenansatz generell richtig sein kann. Was sollen denn die Felder enthalten, wenn die Datenmenge leer ist?

Mikkey 18. Dez 2013 14:10

AW: Endlos Schleife
 
nehme ein "not" heraus, dann wird ein Schuh draus


edit:

Besser:

Delphi-Quellcode:
var fldDID, fldCID: TField;
...
    fldDID := Query.FieldByName('DID'); // DID =DocumentID
    fldCID := Query.FieldByName('CID'); // CID = CompanyID
    repeat
      DokumentID.ID := fldDID.AsInteger; // DID =DocumentID
      DokumentID.ID := fldCID.AsInteger; //<== dies ist dasselbe Feld/Property, gewollt?????
      Result.Add(DocumentID);
      query.Next
    until query.EOF;

sirius 18. Dez 2013 14:11

AW: Endlos Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1240252)
Wobei ich mich frage, ob der Fußschleifenansatz generell richtig sein kann. Was sollen denn die Felder enthalten, wenn die Datenmenge leer ist?

Vielleicht ist die Datenmenge per Definition nicht leer. Was durchaus woanders bereits abgefragt werden könnte, weil sonst die Ausführung des gesamten Programms keinen Sinn macht. ;-)

DeddyH 18. Dez 2013 14:12

AW: Endlos Schleife
 
Wenn die Datenmenge generell nicht leer ist, wird sie auch mit einer Kopfschleife mindestens einmal durchlaufen ;)

sirius 18. Dez 2013 14:15

AW: Endlos Schleife
 
Zitat:

Zitat von DeddyH (Beitrag 1240255)
Wenn die Datenmenge generell nicht leer ist, wird sie auch mit einer Kopfschleife mindestens einmal durchlaufen ;)

Stimmt. Dann vielleicht ..... Trigger? Stored Procs? Entführung von einem Alien? ...:?:

baumina 18. Dez 2013 14:27

AW: Endlos Schleife
 
Ich würde bevor ich zu einem Alien greifen würde, lieber eine while-Schleife draus machen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Seite 1 von 2  1 2      

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