![]() |
AW: Mehrere Datensätze von mehreren Tabellen löschen
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 ? |
AW: Mehrere Datensätze von mehreren Tabellen löschen
Zitat:
|
AW: Mehrere Datensätze von mehreren Tabellen löschen
dann sagt er mir unknown: DELETE (Er versteht das 2te delete nicht)
delKuQuery.SQL.Text :=' DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = '''+(Inttostr(AKunde.ID))+ ''';'; delKuQuery.SQL.Add(' DELETE FROM Kunden WHERE Kunden_ID = '''+(Inttostr(AKunde.ID))+ ''';'); |
AW: Mehrere Datensätze von mehreren Tabellen löschen
Dann scheint es wohl wirklich so zu sein wie gestern bereits vermutet: eine Query kann nur einen einzigen Befehl ausführen. Du brauchst also entweder eine andere Komponente (welche, weiß ich allerdings auch nicht) oder musst die Befehle getrennt nacheinander zuweisen und ausführen.
|
AW: Mehrere Datensätze von mehreren Tabellen löschen
:( mist...
|
AW: Mehrere Datensätze von mehreren Tabellen löschen
Ist doch so schlimm auch nicht:
- Transaktion starten - Detaildatensätze löschen - Hauptsatz löschen - Commiten - Bei Fehler zurückrollen (Rollback) Oder eine SP schreiben und die dann ausführen ;) |
AW: Mehrere Datensätze von mehreren Tabellen löschen
Okay habe eine andere Möglichkeit entdeckt...
----try except block------- zB. Query.SQL.TEXT ' DELETE BLA FROM TABELLEBLA WHERE BLA_ID =.... ' Query.Exec.SQL Query.SQL.TEXT ' DELETE BLUB FROM TABELLEBLUB WHERE BLUB_ID =.... ' Query.Exec.SQL finaly... free. |
AW: Mehrere Datensätze von mehreren Tabellen löschen
:) danke hab ich auch grad so gedacht :)
vielen Dank wieder für deine Hilfe |
AW: Mehrere Datensätze von mehreren Tabellen löschen
@ Bummi. ja warum nicht? die Send_ID ist dann mit dem Kunden Verknüpft und hat die gleiche KundenSendung_NR...
was gesendet wird sieht man dann über die Bücher_ID zb |
AW: Mehrere Datensätze von mehreren Tabellen löschen
So sollte es hoffentlich klappen:
Delphi-Quellcode:
procedure TDataconnect.deleteKunde(AKunde: TKunde);
var delKuQuery: TIBOQuery; delKuTransa: TIBOTransaction; begin delKuQuery:= TIBOQuery.Create(nil); try delKuQuery.IB_Connection:=FDataBase; delKuTransa:= TIBOTransaction.Create(nil); try delKuTransa.IB_Connection:= FDataBase; try delKuQuery.SQL.Text :=' DELETE FROM Sendungsverfolgung WHERE Sendungsverfolgung_ID = :id'; delKuQuery.ParamByName('id').Value := AKunde.ID; delKuQuery.ExecSQL(); delKuQuery.SQL.Text :=' DELETE FROM Kunden WHERE Kunden_ID = :id'; delKuQuery.ParamByName('id').Value := AKunde.ID; delKuQuery.ExecSQL(); delKuTransa.Commit; except on E: Exception do begin //Fehlermeldung ausgeben oder etwas in der Art delKuTransa.Rollback; end; end; finally delKuTransa.Free; end; finally delKuQuery.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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