AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datensatzzeiger - Probleme

Ein Thema von OrgFreak · begonnen am 17. Okt 2012 · letzter Beitrag vom 17. Okt 2012
Antwort Antwort
OrgFreak

Registriert seit: 1. Sep 2011
60 Beiträge
 
Turbo Delphi für Win32
 
#1

Datensatzzeiger - Probleme

  Alt 17. Okt 2012, 07:54
Datenbank: Paradox • Version: 7.0 • Zugriff über: BDE
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datensatzzeiger - Probleme

  Alt 17. Okt 2012, 07:58
Hast Du es mal mit Delphi-Referenz durchsuchenGetBookmark und Delphi-Referenz durchsuchenGotoBookmark versucht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Datensatzzeiger - Probleme

  Alt 17. Okt 2012, 08:00
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
OrgFreak

Registriert seit: 1. Sep 2011
60 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Datensatzzeiger - Probleme

  Alt 17. Okt 2012, 09:51
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
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Datensatzzeiger - Probleme

  Alt 17. Okt 2012, 12:58
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
1. Zum ersten wäre es sinnvoll, jeder Tabelle einen Primary-Key zu spendieren, den du dir nach jedem Scrollvorgang (OnAfterScroll) in einer globalen Variablen merkst:
Delphi-Quellcode:
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;
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):
Delphi-Quellcode:
...
IMPLEMENTATION
USES
   UnitData;
...
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.

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.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz