Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Geklonter Master-Detail-Dataset und Cursor (https://www.delphipraxis.net/163843-geklonter-master-detail-dataset-und-cursor.html)

Rainer Wolff 18. Okt 2011 16:08

Datenbank: Firebird • Version: 2.5 • Zugriff über: dbx

Geklonter Master-Detail-Dataset und Cursor
 
Hallo,

ich habe in meinem Projekt eine Master-Detail Tabelle, mit Clientdataset, Provider etc. programmiert. Von dem Detail-Clientdataset erstelle ich ausserdem noch einen Clone mit CloneCursor.

Nun beobachte ich folgendes Verhalten: Wenn ich im Original-Detail-Dataset einen Datensatz lösche, springt der Cursor grundsätzlich zum Anfang der Tabelle, anstatt an der Löschstelle zu bleiben. Für den Bediener ist das natürlich lästig bis gefährlich, wenn er mehrere Datensätze löschen möchte und der Cursor plötzlich wegspringt.

Wenn ich umgekehrt im Clone einen Datensatz lösche, bleibt der Cursor an der richtigen Stelle stehen.

Gibt es einen Kniff, den Fehler zu beheben, oder muss ich wirklich in meinen 10 Projekten, die ähnlich aufgebaut sind, die Datenmengen vertauschen (ist zwar in allen Projekten von einer Basis abgeleitet, aber wird in den Projekten dann unterschiedlich weiter verwendet).

Gruß Rainer

himitsu 18. Okt 2011 21:21

AW: Geklonter Master-Detail-Dataset und Cursor
 
Im Notfalls kannst'e immernoch das Delete überschreiben,

Mal kurz zum nächsten Datensatz springen, diesen merken, wieder zurück, löschen und danach zum Gemerkten springen.
Falls es keinen Nachfolger gab, dann halt den Vorgänger merken.

FredlFesl 19. Okt 2011 06:26

AW: Geklonter Master-Detail-Dataset und Cursor
 
Kann man nicht BeforeDelete/AfterDelete - Events verwenden?

Rainer Wolff 19. Okt 2011 10:05

AW: Geklonter Master-Detail-Dataset und Cursor
 
Bei der Methode mit Datensatz merken und nachher wieder hinspringen hat man dann gleich die Unschönheit, dass der Ausschnitt im DBGrid verrutscht.
Ach, warum kann nicht einfach mal etwas so einfach funktionieren, wie man es erwartet?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:41 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