Sorry, ich hätte mehr schreiben sollen. Ich arbeite in dem Beispiel mit sqlite3, das ich über ZEOS anspreche. Die umzubenennenden Felder sind zum Glück einfache Felder, ohne Indices, Constraints usw. (kann sich aber irgendwann mal ändern...)
Hintergrund des Ganzen sind die TurboPower VisualPlanIt Komponenten, die ich gerade überarbeite (
http://forum.lazarus.freepascal.org/ind ... 748.0.html), also Kalender-Elemente wie Tages-, Wochen- oder Monatsplaner, sowie Kontakt- und Aufgabenlisten. Die Daten sind in sogenanntem DataStores gespeichert, die in der Regel mit einer Datenbank verbunden sind. Das ganze ist recht allgemein angelegt, so dass man eigentlich jedes Datenbank-System verwenden kann, sofern man den entsprechenden Datastore hat bzw. schreibt. Auf ZEOS kam ich, weil ich der Meinung war (und eigentlich noch bin), dass ZEOS allgemeingültige SQL-Kommands zur Verfügung stellt, so das der Benutzer nur "seine" Datenbank in die ZConnection einstöpseln muss. Generell sind die Ansprüche an SQL gering, nur einfaches SELECT.
Bis auf das hier jetzt: Ich habe die Felder der verwendeten Tabellen ergänzt (
http://forum.lazarus.freepascal.org/ind ... 936.0.html) bzw. umbenannt, und möchte nun eine Möglichkeit bieten, die alten Tabellen beim Start ins neue Format umzuwandeln.
Mit dem Einfügen leerer neuer Spalten hatte ich bisher keine Probleme, ein einfaches ALTER TABLE ... ADD COLUMN... war genug.
Zum Umbenennen der betreffenden bereits existierenden, mit Daten gefüllten (!) Spalten konnte ich bei dem Firebird-DataStore (Zugriff über SQLDB) ebenfalls ein einfaches ALTER TABLE ... RENAME COLUMN verwenden, so wie oben gezeigt. Bei dem Datastore für sqlite3 (Zugriff auch über SQLDB) musste ich das Umbenennen auf der Basis des von Michl zitierten StackOverflow-Beitrags angehen: also aktuelle Tabelle als Hilfstabelle umbenennen, neue aktuelle Tabelle erzeugen, Daten aus der Hilfstabelle in die neue Tabelle kopieren, dabei ggfs. den neuen Spaltennamen verwenden. Das geht nun genauso auch über ZEOS. Aber eigentlich wäre mein Wunsch gewesen, es gäbe für ZEOS sowas wie "ALTER TABLE...RENAME COLUMN..."