![]() |
Datenbank: Paradox • Version: 7.0 • Zugriff über: BDE
Datensatzzeiger - Probleme
Hallo zusammen
Hab immense Probleme mit dem Beibehalten der Datensatzposition, bei Eingabe von Daten in die Felder. 1. Problem : Wenn ich die Unit wechsle und dann das Fenster wieder schliesse, wird der erste Datensatz der Tabelle abgezeigt. 2. Ich hab das Problem mit der Methode Goto Nearest versucht zu lösen, aber das funktioniert nur, wenn ich einen Datensatz habe. Wenn ich mehrere habe mit dem gleichen Namen, funktioniert das nicht mehr. Hab 2 Schlüssel in der DB. Im Prinzip müsste man 2 Goto Nearest Routinen haben. Aber ich weiss nicht wie das gehen sollte. Weiss jemand Rat ? Danke für Eure Antworten Gruss OrgFreak |
AW: Datensatzzeiger - Probleme
|
AW: Datensatzzeiger - Probleme
Hast Du einen Primary Key den Du Dir merken könntest.
Du könntest die Datasets gegf. in einem Datenmodul halten, damit sie unabhängig von Deinen Forms sind. |
AW: Datensatzzeiger - Probleme
Guten Tag
Danke für die Antworten. Hab das ausprobiert mit GotoBookMark und GetBookMark. Funktioniert aber nur bei eindeutigen Feldern, wo's nur einen Datensatz gibt. Sobald ich mehrere mit gleichem Namen habe, springt er irgendwohin. Hab viele Datenbanken, verbunden mit Mastersource (nur eine) und Masterfields. Die Masterfields sind eben die zwei Felder mit den Schlüsseln. Also z.B. ich hab mehrere Vornamen und immer denselben Nachnamen. So ist das mit den zwei Schlüsselfelder. Hab die Variable Bookmark als Global definiert. Beim Verlassen der unit dann den Befehl: HauptUnit.table1.GotoBookMark(Bookmark) einegeben und bei der OnShow Funktion der HauptUnit ebenfalls (zur Sicherheit). HauptUnit meine ich Name der Unit, wo ich die Variable Bookmark global definiert habe. Also vielleicht hat jemand ne Idee. Ich weiss nicht woran's liegt. Gruss OrgFreak |
AW: Datensatzzeiger - Probleme
Zitat:
Delphi-Quellcode:
2. Bei mir liegen Datenbank-Komponenten immer (außer bei Testprogrammen) in einem Datenmodul (UnitData), das auch diese globale(n) Variable(n) aufnehmen kann. Schließlich wird das Datenmodul in der Regel von allen anderen Units/Forms mitverwendet (Uses-Klausel unter Implementation):
procedure TDatMod.Dset_ArtikelAfterScroll(DataSet: TDataSet);
begin // Index_Artikel: globale Integer-Variable, deklariert in UnitData unter Public Index_Artikel := Dset_Artikel.FieldByName('IDX_ARTIKEL').AsInteger; end;
Delphi-Quellcode:
3. Für besondere Fälle merke ich mir den aktuellen Primary-Key in einer lokalen Variablen und setze ihn nach Abschluß der jeweiligen Funktion/Prozedur mittels Locate wieder auf den ursprünglichen Wert.
...
IMPLEMENTATION USES UnitData; ... 4. In fast allen meinen Datenbanken gibt es eine Benutzer-Tabelle, in der ich u.a. auch die Datensatz-Positionen meiner Tabellen speichere, wie sie bei Programmende gerade vorgefunden werden. Dadurch hat der Anwender beim nächsten Start wieder genau die Datensätze vor Augen wie beim vorangegegangen Programm-Ende. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz