![]() |
Datenbank: BDE • Version: ka • Zugriff über: TurboDB
Datensätze aus Detailsource löschen, wie geht das?
Ich habe eine Datenbank mit 3 Tabellen. Die Hauptdatentabelle und 2 über Mastersource verknüpfte Tabellen. Wähle ich nun in der Haupttabelle einen Datensatz werden ja automatisch alle dazugehörigen Datensätze in den Detailtabellen selektiert (oder wie auch immer das heißt). Und genau diese selektieren Datensätze möchte ich alle löschen. Erst in Tabelle 2 dann in Tabelle 1 und schließlich den dazugehörigen Hauptdatensatz.
Kann mit bitte jemand erklären wir ich am besten die selektierten Daten aus den Detailtabellen lösche? Danke! |
AW: Datensätze aus Detailsource löschen, wie geht das?
Je nach Datenbank kann man ja Löschregeln (ON DELETE CASCADE | SET NULL | NO ACTION) erstellen, das dürfte das Vernünftigste sein. Da Du die DB nicht angegeben hast, solltest Du einfach in der Doku nachschauen, ob diese Möglichkeit besteht. Ansonsten kannst Du das auch händisch per SQL machen, aber das sollte nicht die erste Wahl sein.
|
AW: Datensätze aus Detailsource löschen, wie geht das?
BDE wird wohl dBase oder Paradox sein.
|
AW: Datensätze aus Detailsource löschen, wie geht das?
Hallo BBoy,
wenn Du mit TurboDB arbeitest kannst Du mit der Regel ON DELETE CASCADE das Löschen der abhängigen Datensätze automatisch machen lassen. Dazu musst Du im TurboDBViewer einen Fremdschlüssel für die abhängige Tabelle eintragen. Wenn Du stattdessen mit TTdbTable arbeiten willst, kannst Du natürlich auch mit einer Schleife alle aktuellen Datensätze löschen oder mit TTdbTable.DeleteAll alle auf einmal. Letzteres ist aber spezifisch TurboDB. |
AW: Datensätze aus Detailsource löschen, wie geht das?
TTdbTable.DeleteAll, löscht das wirklich alle oder nur die von der mastersource selektierten? Denn wie gesagt, es sollen nur die von der mastersource gewählten gelöscht werden.
|
AW: Datensätze aus Detailsource löschen, wie geht das?
RTFM
![]() |
AW: Datensätze aus Detailsource löschen, wie geht das?
Sorry das ich dies frage aber ich arbeite das erste mal mit Master/Detail.
Ist denn die Datenmenge in der Detailsource gefiltert wenn ich einen Datensatz in der Mastersource auswähle? |
AW: Datensätze aus Detailsource löschen, wie geht das?
Also das mit .deleteall funktioniert nicht, denn da werden alle Datensätze gelöscht. Auch die wo nicht durch die Mastersource selektiert sind.
|
AW: Datensätze aus Detailsource löschen, wie geht das?
Wie wäre es denn, wenn Du einfach eine Löschregel definierst, wie schon 2 mal vorgeschlagen? Wie das in TurboDB genau gemacht wird sollte auch in der Doku stehen.
|
AW: Datensätze aus Detailsource löschen, wie geht das?
Sorry, wenn das mit DeleteAll nicht geht. Es löscht ja bei einem aktiven Filter nur die gefilterten, also hätte ich gedacht, dass mit Detail-Datensätzen auch geht.
Aber die einfachste Art ohne SQL ist eben: while DetailTable.FindFirst do DetailTable.Delete; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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