Query letzte Datensatz
-
Hallo,
ich möchte gerne das in einer Abfrage(If) abgefragt wird ob es der letzte Datensatz in der Query ist.
sowas wie if Query1->Last().... gibts dafür nen Befehl ?
-
Was ist Query1?
-
Err eine TQuery-Komponente....
-
Prinzipiell interessiert mich erst mal: Warum willst Du das wissen?
Und dann wäre es hilfreich zu wissen, welche DB und welche Zugriffskomponenten Du verwendest.
-
Nunja ich habe den Fehler einer Endlosschleife entdeckt die mein Programm zum Abstürzen bringt.
Nun muss ich eine Abfrage gestalten... Wenn du der letzte Datensatz in diesem Query bist und in Feld 12 bei dir ein Wahr steht dann break; (Kill die schleife)
ich weiß es ist unsauber... aber was anderes fällt mir nicht ein
-
Wie sieht denn die Schleife aus? Unsauberes Programmieren wird hier nicht unterstützt.
Je nachdem, welche DB Du verwendest, kannst Du TQuery::RecordCount und TQuery:RecNo verwenden (wird aber nicht von allen Datenbanken unterstützt).
für Paradox / dBase kann man zB auch folgendermaßen vorgehen:
if (Query1->FindFirst()) { do { // irgendetwas mit den Datensätzen machen } while (Query->FindNext()); }
Man muss also gar nicht wissen, ob das der letzte Datensatz ist, um eine Schleife korrekt zu beenden.
-
alternativ gibt es auch Query->Eof
-
Hmm das Problem ist auch das ich selber nicht mehr durchsteige was ich vor 2 Jahren gemacht habe...
Oh mir ist gerade der Fehler aufgefallen.... Naja lag jedenfalls nicht direkt an den eof denn meine For-schleife war: Da ist er durch einen dummen Fehler von mir nicht mehr rausgekommen... wobei ich immer noch nicht ganz geblickt habe wie ich mir das gedacht hatte jedenfalls läufts jetzt
for(int d=0;d<ordnerI->Count;d++)
TStringList *ordnerI=new TStringList(); if (CheckBox7->Checked == true) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit8->Text)); } else {}; if (CheckBox8->Checked == true && Query3->RecordCount>1) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit9->Text)); } else {}; if (CheckBox9->Checked == true && Query3->RecordCount>2) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit10->Text)); } else {}; if (CheckBox10->Checked == true && Query3->RecordCount>3) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit11->Text)); } else {}; if (CheckBox11->Checked == true && Query3->RecordCount>4) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit12->Text)); } else {}; if (CheckBox12->Checked == true && Query3->RecordCount>5) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit13->Text)); } else {}; if (CheckBox15->Checked == true && Query3->RecordCount>6) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit16->Text)); } else {}; if (CheckBox16->Checked == true && Query3->RecordCount>7) { ordnerI->Add(IncludeTrailingBackslash(Form3->Edit17->Text)); } else {};
-
Das ist ja schon fast Daily-WTF-reif.