Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi "ALTER TABLE" funktioniert nur im Entwurfsmodus (https://www.delphipraxis.net/59843-alter-table-funktioniert-nur-im-entwurfsmodus.html)

FBrust 29. Dez 2005 14:41

Datenbank: Firebird embedded • Version: 1.5 • Zugriff über: Zeos 6.5.1

"ALTER TABLE" funktioniert nur im Entwurfsmodus
 
Hallo,

ich habe in meinem Programm eine Abfrage (TZQuery), die zur Laufzeit mit einem SQL-Statement gefüttert und dann per .ExecSQL ausgeführt wird.

Das Statement lautet

SQL-Code:
ALTER TABLE TBLOBJECTS ADD STREXPPATH VARCHAR(255);
Wenn ich nun diese Abfrage im Entwurfsmodus auf "Aktiv" schalte, wird das Statement auch ausgeführt und das Feld findet sich in der Tabelle, so wie es sein soll.

Wenn ich aber die Abfrage zur Laufzeit mit dem Statement belege und dann ausführe, also

Delphi-Quellcode:
              qryChgTbl.Close;
              qryChgTbl.SQL.Clear;
              showmessage(strSQL);
              qryChgTbl.SQL.Add(strSQL);
              qryChgTbl.ExecSQL;
,

dann erhalte ich folgende Fehlermeldung:

"SQL Error: unsuccessful metadata update Table column not found. Error Code: -607. This operation is not defined for system tables. The SQL: ALTER TABLE TBLPROJECTS ADD STREXPPATH VARCHAR(255);' Prozess wurde angehalten.....blabla"

Fazit: Im Entwurfsmodus gehts, zur Laufzeit nicht. :?:

Hat vielleicht jemand eine Idee, woran das liegen könnte?

Gruß
Frank

diago 30. Dez 2005 13:23

Re: "ALTER TABLE" funktioniert nur im Entwurfsmodu
 
Hi FBrust,

bei mir kommt der Fehler dann, wenn 2 oder mehr Verbindungen zu deiner Datenbank offen sind.

Dabei hält vermutlich sowohl deine Enwicklungsumgebung, als auch dein Programm eine Verbindung zur Datenbank.

Wenn du also die Verbindung in Delphi schließt, sollte dein Prog die Anweisung ausführen können.

LG
diago

FBrust 30. Dez 2005 16:48

Re: "ALTER TABLE" funktioniert nur im Entwurfsmodu
 
Hi, Diago,


danke für Deine Antwort.

Das mit der zweiten Verbindung wäre eine Möglichkeit, werds n. W. ausprobieren.


Gruß und guten Rutsch

Frank


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