Seite 1 von 1

SQLite: In zwei Tabellen gleichzeitig löschen (gelöst)

Verfasst: 26. März 2013 18:23
von liupo
Hallo,
ich möchte in meiner eigenen QT-GUI für meine SQLite-Datenbank Datensätze löschen können, jedoch sollen die Daten natürlich konsistent bleiben. D.h. wenn Datensätze in einer Tabelle gelöscht werden, müssen auch die Daten in der damit verknüpften n:m-Tabelle gelöscht werden.

QSqlQuery akzeptiert ja leider nur ein SQL-Statement, sodass dieses Löschen über 2 Tabellen nicht so einfach geht.

Ich habe mich bereits mit Triggern, wie hier http://www.rcs-comp.com/site/index.php/ ... _generator versucht, aber dadurch auch keinen Erfolg erzielen können.

Auch ON DELETE CASCADE als Eigenschaft der Spalten scheint nicht zu funktionieren.

Ich hoffe jemand hat das gleiche Problem und eine gute Lösung gefunden, oder kann mir Tipps geben :<
Ich nutze SQLite 3.7.9

Re: SQLite: In zwei Tabellen gleichzeitig löschen

Verfasst: 27. März 2013 07:30
von odt
2 SQL's = 2 QSqlQuery und das ganze in eine Transaction verpacken.

Re: SQLite: In zwei Tabellen gleichzeitig löschen

Verfasst: 28. März 2013 13:37
von liupo
Vielen Dank,
bzgl. der Transactions hatte ich mich darin verrannt, BEGIN TRANSACTION und COMMIT etc. in die queries selbst zu schreiben, was jedoch nicht funktionierte.
Mit db.transaction(); und db.commit(); funktioniert es nun.