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 4 von 4   « Erste     234   
Benutzerbild von Bummi
Bummi

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

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

  Alt 9. Dez 2011, 09:53
ich gebs auf ....
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 Sir Rufo
Sir Rufo

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

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

  Alt 9. Dez 2011, 10:06
ich gebs auf ....
Ich versuche es noch mal

Es geht um diesen Code (ich habe der Übersichtlichkeit mal den SQL als Parameter-Variante aufgeschrieben):
Code:
DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = :KundeID;
DELETE FROM Kunden WHERE Kunden_ID = :KundeID;
Wenn die Tabelle jetzt so definiert ist:
Code:
Sendungsverfolgung:
Sendungsverfolgung_ID (Primary Key) => ID der Sendungsverfolgung
Kunden_ID => Referenz zum Kunden
...
Müsste es nicht eher so sein:
Code:
DELETE FROM Sendungsverfolgung WHERE Kunden_ID = :KundeID;
DELETE FROM Kunden WHERE Kunden_ID = :KundeID;
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
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#33

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

  Alt 9. Dez 2011, 10:08
Dann doch erst recht die saubere Variante üben! Du bekämst für einen Bruchteil des Aufwandes und weniger Zeilen Code die gleiche Funktionalität in robuster, sicherer, wartungsfreundlicher und erweiterungsoffener, zudem an strukturell sinnvollerer Stelle. Noch ein Vorteil: Du lernst gleich ein wenig das DBMS besser kennen, was insbesondere bei der Wartung bestehender Projekte verdammt praktisch werden dürfte. Ganz ehrlich, du tätest dir wirklich einen Gefallen, egal ob "zum üben" oder in einem echten Projekt. (Nichtzuletzt schleicht sich ja auch gerne mal gelerntes in Produktiveinsätzen ein ;P)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

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
Impulz

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

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

  Alt 12. Dez 2011, 06:11
vielen Dank erstmal.
also erstmal zu dem code (um es nochmal zu erklärgen das sieht dann bei mir so aus:
Code:
 DELETE FROM RECHNUNGEN R WHERE R.Kunden_ID = :id';
das 'R' ist da entscheidend. ich meinte nicht Kunden_ID (aus der Kundentabelle) sondern den fk R.Kunden_ID (oder S kunden Id, was an dieser stelle egal ist)
Danil
  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
 
#36

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

  Alt 12. Dez 2011, 09:20
Code:
DELETE FROM RECHNUNGEN R WHERE R.Kunden_ID = :id';
das 'R' ist da entscheidend. ich meinte nicht Kunden_ID (aus der Kundentabelle) sondern den fk R.Kunden_ID (oder S kunden Id, was an dieser stelle egal ist)
Ich wüsste nicht wofür das R da gut sein sollte, IMHO ist das völlig egal, denn es sind keine weiteren Tabellen (mit gleichlaufenden Feldnamen im Spiel).

Darum muss das auch so funktionieren:
Code:
DELETE FROM RECHNUNGEN WHERE Kunden_ID = :id';
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
Impulz

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

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

  Alt 12. Dez 2011, 09:23
grad schon, nur das ist ja nur ein auszug... das sieht so aus , dass Kunden ja Fks in 3 Tabellen haben...

diese müssen ja erst ALLE weg bevor man den kunden löscht
zb

Sendungsverfolgung---- Kunden
Rechnung---------"
Buecher----------"
und desshalb nutze ich da das s., r. und b.

so komme ich nicht durcheinander
Danil

Geändert von Impulz (12. Dez 2011 um 09:35 Uhr)
  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
 
#38

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

  Alt 12. Dez 2011, 10:37
Ich weiß zwar nicht, warum man hierbei durcheinander kommen kann/soll
Code:
DELETE FROM RECHNUNGEN WHERE Kunden_ID = :id;
DELETE FROM SENDUNGVERFOLGUNG WHERE Kunden_ID = :id;
DELETE FROM KUNDEN WHERE ID = :id;
aber da ist ja jeder in seiner eigenen Verwirrung gefangen
Den SQL-Server verwirrt es auf jeden Fall schon mal gar nicht (und der braucht immer eine 100% eindeutige Referenzierung)
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
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 04:07 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