Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL 2 Delte in einer Query? (https://www.delphipraxis.net/139099-mysql-2-delte-einer-query.html)

youuu 23. Aug 2009 20:43

Datenbank: MySQL • Zugriff über: Devarts

MySQL 2 Delte in einer Query?
 
Hi wie kann ich 2 Delete in einer Query ausführen ohne 2 Excecute zu verwenden?

z.B.
Delphi-Quellcode:
    QueryDelete.SQL.Text:='Delete From `'+Tabelle.Customer+'` Where Customer_number = :Customer_number';

    // Positionen des Kunden loeschen
    QueryDelete.SQL.Text:='Delete From `'+Tabelle.Position+'` Where Customer_number = :Customer_number';

    QueryDelete.Params.ParamValues['Customer_Number'] := CustomerInfos.customer_number;
    QueryDelete.Execute; //SQL-Statement ausführen
funktioniert ja leider nicht.

Bernhard Geyer 23. Aug 2009 21:10

Re: MySQL 2 Delte in einer Query?
 
Wie wäre es mit Oder-Verknüpfung oder IN-Anweisung:

SQL-Code:
QueryDelete.SQL.Text:='Delete From `'+Tabelle.Customer+'` Where Customer_number in [:Customer_number1, :Customer_number2])';
(Blind getippt)

Dax 23. Aug 2009 21:19

Re: MySQL 2 Delte in einer Query?
 
Wenn du in zwei unterschiedlichen Tabellen löschen willst, im Allgemeinen Nein, bei parametrisierten Statements sogar garantiert Nein (zumindest bei den Treibern, die ich bisher gesehen habe).

omata 23. Aug 2009 21:25

Re: MySQL 2 Delte in einer Query?
 
Zitat:

Zitat von youuu
Hi wie kann ich 2 Delete in einer Query ausführen ohne 2 Excecute zu verwenden?

Wozu soll das gut sein?

Bernhard Geyer 23. Aug 2009 21:27

Re: MySQL 2 Delte in einer Query?
 
Zitat:

Zitat von Dax
Wenn du in zwei unterschiedlichen Tabellen löschen willst, im Allgemeinen Nein, bei parametrisierten Statements sogar garantiert Nein (zumindest bei den Treibern, die ich bisher gesehen habe).

Zwei Tabellen - Übersehen :-(

Probier doch beide Delete-Anweisung nach SQL.Text zu schreiben und parameter unterschiedlich zu benennen, zu füllen und zu sehen was das Execute als ergebnis liefert.

Ansonsten: Kannst du Stored Procedures oder Trigger verwenden (bzw. cacadiertes Löschen verwenden wenn es sich um FK-Schlüssel handelt).


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 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