Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Delete und EOF

10 views
Skip to first unread message
Message has been deleted

Georg Hübner

unread,
Jul 13, 2012, 4:10:39 AM7/13/12
to
Hallo,
...
> Table1.First;
> while not Table1.Eof do begin
> if Table1.FieldByName('m').asString = '' then begin
> Table1.Delete;
> end
> else begin
> VerarbeiteDatensatz(Table1);
> Table1.Next;
> end;
> end;
>
> Wenn nun der letzte Datensatz gelöscht wird, dann wird der vorletzte
> zweimal verarbeitet, weil der ja aktiviert wird.
>
> Wie macht man das nun richtig, ohne viel Verrenkungen?
...

ich würde in diesem Fall zwei Schleifen bauen.
Erst eine, die alles löscht was nicht gebraucht wird und dann
in einer zweiten danach die Datensatzverarbeitung.

Ist vielleicht nicht die optimalste Lösung, aber funktioniert.

Gruß

Georg Hübner

Message has been deleted

Peter Lange

unread,
Jul 13, 2012, 12:19:26 PM7/13/12
to
Am 13.07.2012 10:45, schrieb Günter Kieninger:

Hallo Günter,

> Ist auch meine derzeitige schnelle Lösung. Aber schön und elegant ist
> das halt nicht.

Offensichtlich arbeitest Du ja mit Dateitabellen (dBase, Paradox, o.ä).
Sicherlich nicht elegant, aber eine Möglichkeit wäre:

vor dem Delete/Verarbeiten ein Table.Next zu machen, auf EOF prüfen,
merken und dann wieder ein Table.Prior.

Eine Zweite Möglichkeit wäre mit RecordCount und RecNo zu arbeiten, was
ja bei dateibasierten DataSets ordentliche Werte liefert.

hth
Pe-elegantisteineSQLDatenbank-ter





Joachim Duerr (ADS)

unread,
Jul 13, 2012, 6:08:12 PM7/13/12
to
G�nter Kieninger wrote:

>Table1.First;
>while not Table1.Eof do begin
> if Table1.FieldByName('m').asString = '' then begin
> Table1.Delete;
> end
> else begin
> VerarbeiteDatensatz(Table1);
> Table1.Next;
> end;
>end;


query.sql.text:='delete from ['+table1.tablename+'] where m is null or
m=''''';
query.execsql;
Table1.First;
while not Table1.Eof do begin
VerarbeiteDatensatz(Table1);
Table1.Next;
end;

--
Joachim Duerr, Advantage Presales

ADS books available on http://pocketguide.jd-engineering.de
Message has been deleted
Message has been deleted
0 new messages