Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLite Spalte Typ ändern (https://www.delphipraxis.net/212489-sqlite-spalte-typ-aendern.html)

jobo 19. Feb 2023 15:10

AW: SQLite Spalte Typ ändern
 
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, ...

Peter-Pascal 19. Feb 2023 15:58

AW: SQLite Spalte Typ ändern
 
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.

jobo 19. Feb 2023 21:47

AW: SQLite Spalte Typ ändern
 
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.

Peter-Pascal 19. Feb 2023 21:52

AW: SQLite Spalte Typ ändern
 
ja, so sehe ich das auch

anse 20. Feb 2023 06:38

AW: SQLite Spalte Typ ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
ALTER TABLE DROP COLUMN wird ab der sqlite3.dll Version 3.35.1 unterstützt, also erst seit März 2021: https://www.sqlite.org/changes.html#version_3_35_0

Die sqlite3.dll aus meinem Delphi 11.2 Verzeichnis C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\ hat eine ältere Versionsnummer: 3.31.1 (Januar 2020)

Du könntest die dll gegen eine neuere von https://www.sqlite.org/download.html tauschen um die neuesten SQL-Features zu bekommen, inkl. eines Fixes für deinen Fehler. Ich weiß nur nicht ob Delphi hier für 32/64 Bit unterschiedliche DLLs vorhält. Ich hab hier nur die 32 Bit Version gefunden.

Peter-Pascal 20. Feb 2023 07:43

AW: SQLite Spalte Typ ändern
 
Hallo Anse,
danke für Deine Mühe.
So erklärt es sich, dass in der Anleitung der Befehl aufgeführt wird, aber nicht funktioniert.
Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Seite 2 von 2     12   

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