Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Feldgröße zur Laufzeit ändern (https://www.delphipraxis.net/2613-feldgroesse-zur-laufzeit-aendern.html)

FBrust 30. Jan 2003 18:54


Feldgröße zur Laufzeit ändern
 
Hallo,

ich muss bei einer Paradox-Tabelle eines bereits installierten Programms die Feldgröße (String-Feld) ändern.

Ich weiß zwar dass man mit "alter table..." Felder hinzufügen bzw. löschen kann, aber die Feldgröße ändern?

Hat vielleicht jemand eine Idee?

Grüsse

Frank

Hansa 30. Jan 2003 19:28

Uff,

da müssen die Systemtabellen aktualisiert werden. Hoffentlich irre ich mich. :mrgreen:

Gruß
Hansa

FBrust 30. Jan 2003 20:36

Hallo Hansa,

ja, das hoffe ich auch :mrgreen: .

Natürlich kann man sich mit

- Temp-Feld anlegen
- Daten umkopieren
- Altes feld löschen
- Temp-Feld umbenennen

behelfen, ich hoffe aber, dass es einen eleganteren Weg gibt.

Grüsse
Frank

MrSpock 30. Jan 2003 21:17

Hallo FBrust,

Interbase erlaubt nebem dem Löschen und Hinzufügen auch das Ändern von Spalten Typen oder Position. Das geht dann so:

Delphi-Quellcode:
ALTER TABLE Pernonen
ALTER COLUMN Name TO TYPE CHAR(30)
Ich glaube aber, dass lokal SQL diese Anweisung nicht unterstützt, aber du kannst es ja mal versuchen.

DROP und ADD wird auf jeden Fall unterstützt, bliebe also der Vorschlag von oben: Feld hinzufügen, Werte kopieren, altes Feld löschen

Helld_River 31. Jan 2003 14:39

Hi !
Per SQL mache ich das immer folgendermassen:

Code:
  alter table Kunden modify Name CHAR(50);
Vielleicht hilft's ja !!!

Gruß, Helld

FBrust 1. Feb 2003 21:35

Hallo,

so, ich hab jetzt die beiden o. a. Vorschläge ausprobiert, aber bei beiden meldet Delphi eine EDBEngineError-Exception "Unbekanntes Schlüsselwort" entweder "MODIFY" oder "ALTER".

Dann gehts wohl doch nur über den "harten Weg"...

Jedenfalls danke für die Antworten.

Grüsse

Frank

FBrust 1. Feb 2003 22:02

Und das bringt mich auch schon zur nächsten Frage:

Wie benennt man denn ein Feld um?

Ich hab mal in der Hilfe zu Local SQL nachgesehen, aber da steht nix.

Gibt es da überhaupt eine Möglichkeit?


Grüsse
Frank

Hansa 1. Feb 2003 23:20

ich habe mal einfach so etwas probiert, aber in IBexpert. Da gibt es eine Funktion "Edit Field"

Code:
ALTER TABLE NEW_TABLE ALTER NEW_FIELD TO NEW_F
d.h., ich schneide hier nur das "IELD" vom Feldnamen ab.

Sanchez 26. Jan 2004 08:14

Re: Feldgröße zur Laufzeit ändern
 
Hallo,

Werde mich mal an diesen Thread anhängen, weil die Frage dazupasst.

SQL-Code:
ALTER TABLE NEW_TABLE ALTER NEW_FIELD TO NEW_F
Wie sieht diese Anweisung für Access aus? Das TO scheint es hier nicht zu geben. Wenn ichs weglasse beschwert er sich, dass es das Feld NEW_F nicht gibt.

grüße, daniel


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