![]() |
Datenbank: BDE • Version: Paradox 7 oder so ... • Zugriff über: k.a
SQl Delete - löschen über mehrere Tabellen
Hallo ich bins wieder :)
Also folgendes: Ich hab eine Haupttabelle mit Inventarnummern und eine Detailtabelle mit diversen Informationen( nicht relevant) die mit eben dieser Haupttabelle über ein fremdschlüsselfeld verbunden ist. Nun soll der User die Inventarnummer in ein Edit eingeben und anahnd dieser Nummer soll der entsprechende datensatz mit den dazugehörigen details aus der Detailtabelle gelöscht werden. Hab eine SQL Abfrage mit DELETE FROM
Delphi-Quellcode:
leider kommt dann eine fehlermeldung mit " ... invalid use of keyword token: , "nummer:=Edit1.Text; Query1.Active:=false; Query1.SQL.Clear; Query1.SQL.Add('DELETE FROM Inventarnummern, Details WHERE Inventarnummer = "'+(nummer)+'" AND Details.ID = Inventarnummern.ID_Details'); Query1.ExecSQL; wenn ich das delete nur in der Tabelle Inventarnummern mache funktionierts, kann es sein dass das generell nur bei einer tabelle möglich ist ? kennt ihr andere lösungswege ? lg alex-91 |
AW: SQl Delete - löschen über mehrere Tabellen
Geht so nicht. Eine Möglichkeit wäre eine Delete-Rule. Das wird aber bei Paradox nicht funktionieren.
|
AW: SQl Delete - löschen über mehrere Tabellen
Hallo,
unter Paradox musst du zuerst in der Detail-Tabelle löschen und dann in der Master, wären also 2 SQL-Befehle. Standard-Frage: Warum Pdx ? Unter Firebird würde man einen Foreign Keys mit Cascade-Delete definieren ... Heiko |
AW: SQl Delete - löschen über mehrere Tabellen
Zitat:
verwende Pdx weil ich in der schule nichts anderes gelernt habe, sind kein sonderlich umfangreicher informatik-zweig :) zum was anderes lernen/anschaun ist leider auch nicht wirklich zeit das heißt also ich wähl den datensatz anhand der eingegebenen nummer aus, nehm das feld mit dem fremdschlüsselfeld, komm dadurch zum entsprechenden detail-datensatz, lösch diesen und dann den rest aus der haupttabelle ? lg |
AW: SQl Delete - löschen über mehrere Tabellen
Cascade Delete ist eine Delete Rule. Bei moderneren DBMS kann man angeben, was passiert wenn man einem Datensatz den Bezug wegnimmt.
Ein kaskadierendes Löschen bedeutet, dass abhängige Datensätze mitgelöscht werden ( gefährlich Regel). Andere Alternativen wären z.B. ein Standradbezug herzustellen. Beispiel: Beim Löschen eines Kunden werden alle seine Rechnungen gelöscht in Folge auch alle Rechnungspositionen der Rechnungen. FK steht für Foreign Key also Fremdschlüssel |
AW: SQl Delete - löschen über mehrere Tabellen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 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 by Thomas Breitkreuz