Makros und Programme einsetzen Datensätze lesen |
Top Previous Next |
Wenn Sie in Ihrem eigenen Makro Datensätze aus einer Tabelle lesen wollen, handelt es sich oft darum, alle Datensätze der Tabelle durchzugehen. Dies können Sie z.B. folgendermaßen erreichen: MoveBegin(MYTABLE); Eine Alternative dazu ist Folgendes: .sub MYTABLE In der ersten Variante haben Sie wesentlich mehr Kontrolle über den gesamten Vorgang, dafür ist die zweite Variante etwas eleganter. Sollten Sie die Datensätze in einer vorgegebenen Sortierung durchlaufen wollen, können Sie folgendes tun: SetAccess(MYTABLE, 'MYTABLE_Number_Index'); In dieser Variante muss es einen Index namens MYTABLE_Number_Index geben, der die gewünschte Sortierung beinhaltet. Das Kommando SUB kann hier noch etwas mehr: .sub MYTABLE Die Sortierung nach dem Datenfeld Name erfolgt hier unabhängig davon, ob ein passender Index existiert oder nicht. Allerdings ist die Ausführung natürlich schneller, wenn dies der Fall ist. Analog zu MoveBegin und ReadNext gibt es auch die Befehle MoveEnd und ReadPrev, mit denen man die Datensätze der Tabelle von hinten nach vorne durchlaufen kann. Dies ist nützlich, wenn innerhalb des Durchlaufs Datensätze gelöscht werden, weil sich dies dann auf den weiteren Verlauf der Schleife nicht auswirken kann. In älteren Versionen wurde MoveBegin und ReadNext noch nicht unterstützt. Das Lesen von Datensätzen sah damals folgendermaßen aus und funktioniert auch in TurboDB Studio noch: vardef RecNo: Number; Diese Methode ist erheblich umständlicher als die neue Methode mit MoveBegin und ReadNext. Außerdem wird hier in einer Mehrbenutzer-Version zusätzlich noch eine Sperre benötigt, damit die physikalische Satznummer garantiert gültig bleibt. Dies ist bei MoveBegin und ReadNext nicht nötig. Siehe auch |