Makros und Programme einsetzen

Markierte Datensätze

Top  Previous  Next

Das Markieren von Datensätzen ist eine äußerst bequeme Methode, um mit Teilmengen Ihrer gesamten Daten zu arbeiten. TurboPL bietet effiziente und einfach zu verwendende Konstrukte, um Datensätze zu markieren und mit Listen aus markierten Datensätzen zu operieren. Diese Art mit Teilen der Gesamttabelle zu arbeiten, ist eine Alternative zu herkömmlichen Vorgehensweise mit SQL SELECT-Anweisungen, die in TurboPL auch möglich sind. Ein typischer Ablauf sieht so aus:

..Alle Personen markieren, die heute Geburtstag haben
LoopRecs(PERSON, Geburtstag = Today, SetMark(A, RecNo(A)));
..Die betrachtete Datenmenge auf diese einschränken
Access(A, "Markierung");
.. Alle markierten Datensätze durchlaufen
Rec := FirstRec(A);
while Rec > 0
       ..Hier mit dem Datensatz etwas ausführen
       Rec := NextRec(A);
end;

Mit den Prozeduren GetMarks und PutMarks können alle Markierungen einer Tabelle in ein Integer-Array gespeichert und wieder zurückgeschrieben werden. Beachten Sie dabei, dass in diesem Array dann physikalische Satznummern stehen, die sich durch Löschen von Datensätzen (zum Beispiel auch durch eine andere Anwendung) ändern können. Sie müssen also sicherstellen, dass zwischen dem Zeitpunkt von GetMarks und dem von PutMarks kein Datensatz aus der Tabelle gelöscht wird. Dies können Sie in einer Mehrbenutzer-Anwendung dadurch tun, dass Sie eine Schreibsperre auf die Tabelle setzen.