AGB  ·  Impressum  







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

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
271 Beiträge
 
Delphi 2009 Professional
 
#1

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

  Alt 25. Jan 2012, 09: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 10:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
21.058 Beiträge
 
Delphi XE Professional
 
#2

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

  Alt 25. Jan 2012, 09: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
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
33.324 Beiträge
 
Delphi XE2 Professional
 
#3

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

  Alt 25. Jan 2012, 11: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, 17: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
271 Beiträge
 
Delphi 2009 Professional
 
#5

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

  Alt 26. Jan 2012, 16: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
Online

Registriert seit: 5. Jan 2005
Ort: Stadthagen
3.076 Beiträge
 
Delphi 2010 Professional
 
#6

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

  Alt 26. Jan 2012, 17:17
RTFM TTdbTable.DeleteAll?
Kaum macht man's richtig - schon funktioniert's
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
271 Beiträge
 
Delphi 2009 Professional
 
#7

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

  Alt 26. Jan 2012, 21: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
271 Beiträge
 
Delphi 2009 Professional
 
#8

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

  Alt 27. Jan 2012, 06: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
21.058 Beiträge
 
Delphi XE Professional
 
#9

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

  Alt 27. Jan 2012, 07: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
Wenn Dein Programm nicht macht, was es soll, nenn es einfach "Version 1.0"

Delphi programming is cool
  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, 09: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   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2012 by Daniel R. Wolf