AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQLite via Zeos Delete - nix passiert
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite via Zeos Delete - nix passiert

Ein Thema von cltom · begonnen am 14. Dez 2021 · letzter Beitrag vom 15. Dez 2021
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

SQLite via Zeos Delete - nix passiert

  Alt 14. Dez 2021, 17:25
Datenbank: SQLite • Version: 3.36 • Zugriff über: ZEOS
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!

Geändert von cltom (14. Dez 2021 um 17:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

AW: SQLite via Zeos Delete - nix passiert

  Alt 15. Dez 2021, 06:50
Moin...
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.

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

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

PS: Bitte verwende im Quelltext Parameter.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#3

AW: SQLite via Zeos Delete - nix passiert

  Alt 15. Dez 2021, 08:30
Moin...
...weil der DB Browser den String als "Script" ansieht und so ausführt. In einer Query kannst du nur eine "Zeile" ausführen.

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

PS: "COMMIT" ist für Scripts vorgesehen. In einer Query bringt das nix...
Du bist ein Held, danke! Schau ich mir gleich mal an!

Zitat:
PS: Bitte verwende im Quelltext Parameter.
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.

Danke Dir!!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 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