AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze aus Detailsource löschen, wie geht das?
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze aus Detailsource löschen, wie geht das?

Ein Thema von BBoy · begonnen am 25. Jan 2012 · letzter Beitrag vom 31. Jan 2012
Antwort Antwort
Seite 1 von 2  1 2      
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Datensätze aus Detailsource löschen, wie geht das?

  Alt 25. Jan 2012, 10:37
Datenbank: BDE • Version: ka • Zugriff über: TurboDB
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!

Geändert von BBoy (25. Jan 2012 um 11:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 25. Jan 2012, 10:54
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.
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 25. Jan 2012, 12:23
BDE wird wohl dBase oder Paradox sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Peter Pohmann

Registriert seit: 26. Sep 2004
14 Beiträge
 
#4

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 25. Jan 2012, 18:57
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.
Peter Pohmann
Software-Architekt (dataweb)
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 26. Jan 2012, 17:02
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 26. Jan 2012, 18:17
RTFM TTdbTable.DeleteAll?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 26. Jan 2012, 22:19
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?
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#8

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 27. Jan 2012, 07:56
Also das mit .deleteall funktioniert nicht, denn da werden alle Datensätze gelöscht. Auch die wo nicht durch die Mastersource selektiert sind.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 27. Jan 2012, 08:34
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.
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
Peter Pohmann

Registriert seit: 26. Sep 2004
14 Beiträge
 
#10

AW: Datensätze aus Detailsource löschen, wie geht das?

  Alt 27. Jan 2012, 10:29
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;
Peter Pohmann
Software-Architekt (dataweb)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:45 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