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:
Hier ist noch meine Sql Anweisung
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);
Code:
Danke im Voraus.
Query.SQL.Text := 'Select ID As DID ,CompanyID As CID from [Document] Where Status = 1 and LoadForEmployee = false Order By CompanyID';
|
AW: Endlos Schleife
nehme ein "not" heraus, dann wird ein Schuh draus
|
AW: Endlos Schleife
Zitat:
|
AW: Endlos Schleife
Delphi-Quellcode:
Bei einem oder keinem Eintrag wird das sonst zu einer Endlosschleife.
until (query.Eof);
|
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?
|
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; |
AW: Endlos Schleife
Zitat:
|
AW: Endlos Schleife
Wenn die Datenmenge generell nicht leer ist, wird sie auch mit einer Kopfschleife mindestens einmal durchlaufen ;)
|
AW: Endlos Schleife
Zitat:
|
AW: Endlos Schleife
Ich würde bevor ich zu einem Alien greifen würde, lieber eine while-Schleife draus machen...
|
AW: Endlos Schleife
Zitat:
Ich danke euch allen für die Antworten. Einen Schönen Tag noch. |
AW: Endlos Schleife
[OT]
Ein Kommilitone hat neuerdings auch Probleme mit einer nicht terminierenden Schleife gehabt. Nach der Vereinfachung der hochkomplexen und langen Schleifenbedingung, die kaum leserlich war, - btw. boolsche Algebra ftw! - bin ich draufgekommen, dass es sich um eine Tautologie handelt :-D Ich hätte nie gedacht, dass ich jemals boolsche Algebra praktisch verwenden würde :cyclops: [/OT] |
AW: Endlos Schleife
Gewöhnlich iteriert man durch eine Datenbanktabelle mit einer While-Schleife, die bei Beginn prüft, ob sich der Datensatzzeiger bereits am Ende der Tabelle (eof) befindet:
Delphi-Quellcode:
Wenn sich kein Datensatz in der Tabelle befindet, wird die While-Schleife auch nicht durchlaufen.
Dataset.first;
While not Dataset.Eof do begin ... Dataset.Next; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 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