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 2  1 2      
Benutzerbild von DeddyH
DeddyH

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

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
 
#2

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
 
#3

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
 
#4

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
 
#5

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
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

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

  Alt 9. Dez 2011, 06:58
wenn ich nicht völlig übermüdet bin, hast Du Dir gerade selbst widersprochen.
Wenn ich als Kunde 17 3 Sachen bestelle haben drei Sendungen die ID 17 ?
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
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 9. Dez 2011, 07:01
Zitat:
Delphi-Quellcode:
delKuQuery.SQL.Text :=' DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = '''+(Inttostr(AKunde.ID))+ ''';';
  delKuQuery.SQL.Text :=' DELETE FROM Kunden WHERE Kunden_ID = '''+(Inttostr(AKunde.ID))+ ''';';
So wird der erste SQL-Befehl durch den zweiten überschrieben und somit nie ausgeführt. Versuch es stattdessen einmal mit SQL.Add.
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
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

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

  Alt 9. Dez 2011, 09:46
wg. #10

Erklär mir doch noch mal wie das funktioniert.
Verstanden habe ich es so:

-Sendungsverfolgung_ID ist der Primärschlüssel von Sendungsverfolgung
-eingetragen werden soll hier die Kunden_ID

wie funktioniert es bei diesem Schema 2 Sendungen an einen Kunden zu erstellen.
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
 
#9

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

  Alt 9. Dez 2011, 09:48
Also die sendungsverfolgung hat dann noch einen FK zur KUnden.ID
sprich:

S.K.ID
Danil
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

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

  Alt 9. Dez 2011, 13:45
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.
@Bummi
Nehmen wir zu seinen Gunsten an, daß er sich zwischen den ganzen Schlüsseln verlaufen hat. Da es nur ein Projekt zum Üben ist....
Hoffentlich gibt es einen Backup.

@Impulz
Wie wäre es, wenn Du uns mal die Tabellendefinition zeigst?
Dann ist die Hilfe u.U. etwas einfacher.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 07:52 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-2025 by Thomas Breitkreuz