AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Mehrere Datensätze von mehreren Tabellen löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Datensätze von mehreren Tabellen löschen

Ein Thema von Impulz · begonnen am 8. Dez 2011 · letzter Beitrag vom 12. Dez 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#1

Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 13:50
Delphi-Version: 5
Hallo,
liebe Com ich habe mal wieder ein Problem:

ich sitze immer noch an meiner DB (IBExpert) und meiner Delphi Oberfläche.

ich habe überall gesucht, ohne überhaupt das stichwort zu kennen nachdem ich suchen sollte.

ich habe ein pmMenu , dass Löschen soll... mir fehlt nur noch der richtige SQL befehl.. DELETE FROM TABELLE WHERE BEDINGUNG geht leider nicht, weil ich PK und FK's habe. Dort steht dann ich lösche nen PK auf den sich ein FK bezieht und desshalb gehts nicht.

wie lösche ich also nun den datensatz und die datensätze in den anderen tabellen die mit dem einen zusammenhängen?


hoffe es ist halbwegs verständlich.




Liebe Grüße,
Danil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 13:51
Entweder in der richtigen Reihenfolge löschen (erst abhängige Datensätze, dann den Hauptdatensatz) oder eine entsprechende Löschregel festlegen (ON DELETE SET NULL/CASCADE).
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
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#3

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 14:10
Wie immer danke für deine schnelle Antwort ,

wie würde das mit der reihenfolge als BSP aussehen?

weil hintereinander wäre mir zu unsicher.... wenn da was schiefgeht dann habe ich den salat.
Danil
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 14:16
Wie die richtige Reihenfolge aussieht, kannst nur Du wissen. Dafür muss man die Struktur der DB kennen. Meiner Meinung ist es aber besser, das in der Datenbank zu definieren (wie DeddyH schon sagte, ON DELETE CASCADE).
Jens
  Mit Zitat antworten Zitat
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#5

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 14:22
ok danke euch
Danil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 14:24
Nehmen wir mal eine 1:n-Beziehung, in der Du den Hauptsatz(1) löschen möchtest.
Code:
Haupttabelle:
ID
Name

Detailtabelle:
ID
ID_Haupt --FK auf Haupttabelle
Name
Wuppdi
Nun soll aus der Haupttabelle der Satz mit ID 42 gelöscht werden.
SQL-Code:
DELETE FROM Detailtabelle WHERE ID_Haupt = 42
DELETE FROM Haupttabelle WHERE ID = 42
Das Ganze in einer Transaktion, dann sollte das auch klappen. Alternativ kannst Du natürlich auch eine SP dafür schreiben oder eben die schon erwähnte Löschregel definieren.

[edit] *Oops* zu spät, Sch**ß Telefon [/edit]
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

Geändert von DeddyH ( 8. Dez 2011 um 14:36 Uhr)
  Mit Zitat antworten Zitat
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#7

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 8. Dez 2011, 14:35
ok danke
Danil
  Mit Zitat antworten Zitat
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#8

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 9. Dez 2011, 05:56
Code:
delKuQuery.SQL.Text :=' DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = '''+(Inttostr(AKunde.ID))+ ''';';
delKuQuery.SQL.Text :=' DELETE FROM Kunden WHERE Kunden_ID = '''+(Inttostr(AKunde.ID))+ ''';';
meintet ihr das so?

es funktioniert nicht... kriege eine fehlermeldung. Obwohl ich Sendungsverfolgung_ID lösche steht da, das es nicht geht weil beim Kunden immer noch ein FK zu kunden besteht.

so vielleicht? WHERE Sendungsverfolgung_ID = Kunden.Kunden_ID

???

SO sieht es insgesammt aus im Code:
Code:
procedure TDataconnect.deleteKunde(AKunde: TKunde);
var
  delKuQuery: TIBOQuery;
  delKuTransa: TIBOTransaction;
begin
  delKuQuery:= TIBOQuery.Create(nil);
  delKuQuery.IB_Connection:=FDataBase;
  delKuTransa:= TIBOTransaction.Create(nil);
  delKuTransa.IB_Connection:= FDataBase;
  delKuQuery.SQL.Text :=' DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = '''+(Inttostr(AKunde.ID))+ ''';';
  delKuQuery.SQL.Text :=' DELETE FROM Kunden WHERE Kunden_ID = '''+(Inttostr(AKunde.ID))+ ''';';
  delKuQuery.ExecSQL();
  delKuTransa.Commit;
  //TRY FINALY EINBAUEN
  delKuQuery.Free;
  delKuTransa.Free;

end;
Danil
  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
 
#9

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 9. Dez 2011, 06:31
Code:
Sendungsverfolgung_ID = '''+(Inttostr(AKunde.ID))
wird wirklich die KundenID zur Sendungsverfolgung verwendet??
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
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#10

AW: Mehrere Datensätze von mehreren Tabellen löschen

  Alt 9. Dez 2011, 06:55
ja, die Kunden ID ist der PK für die Sendungsverfolgung_ID.

damit 1 Kunde auch mehrere Bestellungen haben kann, aber gleichzeitig nix durcheinander kommt

PS: Die Kunden_ID ist in der Tabelle Kunden
Danil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 15:30 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