Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   SQLite via Zeos Delete - nix passiert (https://www.delphipraxis.net/209499-sqlite-via-zeos-delete-nix-passiert.html)

cltom 14. Dez 2021 16:25

Datenbank: SQLite • Version: 3.36 • Zugriff über: ZEOS

SQLite via Zeos Delete - nix passiert
 
Hallo,

hab die üblichen Suchen gemacht, dennoch klappt das noch nicht. Es soll eine Reihe von Einträgen in einer SQLite-DB gelöscht werden. Die Syntax sieht im Grunde so aus:

Delphi-Quellcode:
dbSQLTransactionString := 'BEGIN TRANSACTION; ' + 
'DELETE FROM TableA WHERE SomeID = ' + SomeID + ';' + 
'DELETE FROM TableB WHERE SomeID = ' + SomeID + ';' + 
'DELETE FROM TableC WHERE SomeID = ' + SomeID + ';' + 
'COMMIT;'
Das ganze übergebe ich so:

Delphi-Quellcode:
  ZQuery.SQL.Text := dbSQLTransactionString; //der String von oben
  ZQuery.ExecSQL;
davor das übliche Connect
Delphi-Quellcode:
  ZConnection.Disconnect;
  ZConnection.Protocol := dbProtocol;
  ZConnection.LibraryLocation := dbLibraryLocation;
  ZConnection.HostName := dbHostName;
  ZConnection.Database := dbDatabaseName;
  ZConnection.ClientCodepage := dbClientCodepage;
  ZConnection.Port := dbPort;
  ZConnection.Connect;
  ZQuery.Connection := ZConnection;
  DataSource.DataSet := ZQuery;
Wenn ich den TransactionString separat ausführe (in DB Browser), tut er. Hier macht er nicht. Die Datenbank bleibt unberührt. Alle Einträge erhalten.

Danke für Hinweise!

haentschman 15. Dez 2021 05:50

AW: SQLite via Zeos Delete - nix passiert
 
Moin...:P
Zitat:

Wenn ich den TransactionString separat ausführe (in DB Browser)
...weil der DB Browser den String als "Script" ansieht und so ausführt. In einer Query kannst du nur eine "Zeile" ausführen.:wink:

Nimm statt TZQuery TZScript oder wie das da heist...:zwinker: Oder führe jede Zeile einzeln aus.

PS: "COMMIT" ist für Scripts vorgesehen. In einer Query bringt das nix...:zwinker:

PS: Bitte verwende im Quelltext Parameter. :warn:

cltom 15. Dez 2021 07:30

AW: SQLite via Zeos Delete - nix passiert
 
Zitat:

Zitat von haentschman (Beitrag 1499123)
Moin...:P
...weil der DB Browser den String als "Script" ansieht und so ausführt. In einer Query kannst du nur eine "Zeile" ausführen.:wink:

Nimm statt TZQuery TZScript oder wie das da heist...:zwinker: Oder führe jede Zeile einzeln aus.

PS: "COMMIT" ist für Scripts vorgesehen. In einer Query bringt das nix...:zwinker:

Du bist ein Held, danke! Schau ich mir gleich mal an!

Zitat:

PS: Bitte verwende im Quelltext Parameter. :warn:
:oops: erwischt! ja, muss ich auch noch abändern. (einmal doof angefangen und dann aber konsequent durchgezogen ... jetzt muss ich alle Queries umschreiben ... Leben und Lernen.:stupid:

Danke Dir!!:thumb:


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