AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLite Spalte Typ ändern
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite Spalte Typ ändern

Ein Thema von Peter-Pascal · begonnen am 16. Feb 2023 · letzter Beitrag vom 20. Feb 2023
Antwort Antwort
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: SQLite Spalte Typ ändern

  Alt 17. Feb 2023, 08:36
Hallo Delphi.Narium,

mit TFDQuery funktionierte keine Variante. Wobei ich jetzt nicht behaupten möchte alle Varianten ausprobiert zu haben, und jedes Mal auch die richtige Syntax verwendet zu haben.
Dagegen hat mit dem Tool fast jede Variante funktioniert. Es hat schneller gelöscht, als ich auf Enter drücken konnte. Glücklicherweise fragt es am Ende, ob es die Veränderungen übernehmen soll. Das finde ich gut.

Kann es sein, dass der Befehlssatz von FireDac restriktiver ist als der von SQLite selbst?

Gruß Peter
Peter Niemeier
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.114 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: SQLite Spalte Typ ändern

  Alt 17. Feb 2023, 08:42
Ich bin in FireDAC und Datenbanken generell jetzt nicht so fit, aber ich hätte gedacht dass Queries für Abfrage und Manipulation (Data Query Language, Data Manipulation Language) gedacht ist, aber nicht für DDL welches die Struktur von Tabellen verändert.

Wenn man das möchte (dazu zählt z.B. auch das Anlagen und Löschen von Tabellen und Schemata) führt man die Query direkt über die TFdConnection aus.

Wird hier auch so gezeigt:

Ausführen von Anweisungen (FireDAC)
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: SQLite Spalte Typ ändern

  Alt 17. Feb 2023, 09:21
Grundsätzlich hast Du recht. Der TFDQuery öffnet im Entwurfsmodus auf Doppelklick einen Abfrageeditor, der SQL-Anweisungen ausführt. Der Editor unterscheidet nicht zwischen DML und DDL. Wobei es möglicherweise doch der Grund ist, dass Spalten angelegt werden können, aber nicht gelöscht. Vielleicht eine Erklärung.
Peter Niemeier
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: SQLite Spalte Typ ändern

  Alt 19. Feb 2023, 15:10
Es gibt ja sowas wie Dokumentation:
https://www.sqlite.org/lang_altertable.html
alter table .. drop column sollte also funktionieren.

Dagegen gibt es viele Stellen im Netz, die (noch) davon sprechen, dass drop column in SQLite nicht möglich ist.
Vielleicht ist es eine Frage der Version und die Drop Funktion ist relativ neu.

Das Tool sollte dabei relativ egal sein. Außer ein Programmierer hat sich in einem SQLite Tool die Mühe gemacht, die fehlende Funktion mit Workarounds nachzubauen, wie schon beschrieben.
- create copyTabelle as Select <ohneZuLöschendeSpalte> from originalTabelle
- drop originalTabelle
- rename copyTabelle
Was natürlich nur die reine Datenmigration erledigt, keine Constraints, Schlüssel, Indizierung, ...
Gruß, Jo
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SQLite Spalte Typ ändern

  Alt 19. Feb 2023, 15:58
Danke Jobo für den Hinweis.

Hier wird genau der Fehler erwähnt, den ich auch bekommen habe. Allerdings ist der Beitrag bereits über 11 Jahre alt.
Peter Niemeier
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: SQLite Spalte Typ ändern

  Alt 19. Feb 2023, 21:47
Ja, etwas tiefer findet man auch einen Kommentar aus 2021, dass die Antwort es sei nicht möglich, veraltet ist.
Noch tiefer der aktuelle Status quo, dass der Befehl nun da ist und Verweise auf die Doku.
Dort findet man auch diverse Angaben, wo das Löschen einer Spalte scheitert, trotz der Einführung des Befehls. Diese dürften allerdings weniger als Fehler, sondern als Feature zu werten sein, Stichwort Daten-Konsistenz.
Gruß, Jo
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: SQLite Spalte Typ ändern

  Alt 19. Feb 2023, 21:52
ja, so sehe ich das auch
Peter Niemeier
  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 19:55 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