Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Mehrere Datensätze von mehreren Tabellen löschen (https://www.delphipraxis.net/164980-mehrere-datensaetze-von-mehreren-tabellen-loeschen.html)

Bummi 9. Dez 2011 06:58

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 ?

DeddyH 9. Dez 2011 07:01

AW: Mehrere Datensätze von mehreren Tabellen löschen
 
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.

Impulz 9. Dez 2011 07:19

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))+ ''';');

DeddyH 9. Dez 2011 07:24

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.

Impulz 9. Dez 2011 07:26

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

DeddyH 9. Dez 2011 07:30

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 ;)

Impulz 9. Dez 2011 07:32

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.

Impulz 9. Dez 2011 07:33

AW: Mehrere Datensätze von mehreren Tabellen löschen
 
:) danke hab ich auch grad so gedacht :)


vielen Dank wieder für deine Hilfe

Impulz 9. Dez 2011 07:36

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

DeddyH 9. Dez 2011 07:36

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.
Seite 2 von 4     12 34      

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