Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Spalte aus Tabelle entfernen (https://www.delphipraxis.net/5757-spalte-aus-tabelle-entfernen.html)

Gambit 18. Jun 2003 11:05


Spalte aus Tabelle entfernen
 
Moin!

Ist es eigentlich möglich, eine Spalte aus einer Paradoxtabelle zu entfernen?

Habs mal mit SQL so probiert:

ALTER TABLE Table_Name DROP COLUMN Column_Name

Funzt aber nicht. Alter kennt Paradox scheinbar nicht.

Gruß

Gambit

r_kerber 18. Jun 2003 11:29

Zur Laufzeit oder während der Entwicklung?

Gambit 18. Jun 2003 11:34

Naja, zur Laufzeit brächte mir einen Lerneffekt, während der Entwicklung würde mir aber schon erstmal reichen bzw. was meinst du genau mit Entwicklung? Ich meine, wenn man irgendwann merkt, dass man eine Spalte gar nicht braucht, wie bekommt man sie dann wieder wech?

Datenbankoberfläche?

Gambit

r_kerber 18. Jun 2003 11:40

Du hast deine Frage schon selbst beantwortet: Datenbankoberfläche :lol: Zur Laufzeit sollte es eigentlich mit dem ALTER-Statement gehen (Steht zumindest so in der OH zur lokalen SQL).

Gambit 18. Jun 2003 11:48

Tja, kann keine Option dafür finden.

Und zur Laufzeit:

Code:
Query.close;
Query.sql.add('Alter Table Blah drop Column blah');
Query.open;
geht so zumindest auch erstmal nicht.

Gruß

Gambit

r_kerber 18. Jun 2003 11:55

Auszug aus der OH:
Zitat:

Mit ExecSQL können Sie die Anweisung ausführen, die aktuell in der Eigenschaft SQL enthalten ist. Mit ExecSQL können Sie Anweisungen ausführen, die keinen Cursor auf Daten (wie z.B. INSERT, UPDATE, DELETE oder CREATE TABLE) zurückgeben.
Und ALTER TABLE liefert keinen Datenbank-Cursor zurück. Somit geht Query1.Open nicht.

Gambit 18. Jun 2003 12:05

Ahaa! Da bekomm ich ja fast ein Dejavü oder wie das heißt.

Danke

Gambit

Gambit 18. Jun 2003 12:12

So, und wie bekomm ich jetzt die Nachricht "Tabelle ist in Gebrauch" wech? Sobald ich mein Programm starte ist die Tabelle ja in Gebrauch.

Gambit

r_kerber 18. Jun 2003 12:12

Zitat:

Zitat von Gambit
Da bekomm ich ja fast ein Dejavü oder wie das heißt.

Wieso?

r_kerber 18. Jun 2003 12:15

Du mußt dann natürlich die Query auf der die Anzeige beruht schließen (Close)!

Gambit 18. Jun 2003 12:22

So dachte ich...

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Alter Table Table_name drop Column Column_name');
Query1.ExecSQL;

falsch gedacht...

Gambit

r_kerber 18. Jun 2003 12:41

Aus der OH
SQL-Code:
ALTER TABLE "Names.db"
DROP FullName, ADD LastName CHAR(25)

Gambit 18. Jun 2003 13:11

würde es dir was ausmachen, das ein wenig Delphi like zu verpacken?

Gruß

Gambit

Gambit 18. Jun 2003 13:13

Ach, sorry, geht ja, man darf nur nicht vergessen, die Datenbankoberfläche oder zumindest die Tabelle zu schließen.

Sorry

Gambit


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