Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TTable: Breite einer vorhandene Spalte nachträglich ändern (https://www.delphipraxis.net/127177-ttable-breite-einer-vorhandene-spalte-nachtraeglich-aendern.html)

Helmi 8. Jan 2009 22:27

Datenbank: Paradox • Zugriff über: TTable, BDE

TTable: Breite einer vorhandene Spalte nachträglich ändern
 
Hallo,

wie kann ich naträglich, bei einer schon vorhandenen Tabelle, die Spaltenbreite ändern?

mkinzler 8. Jan 2009 22:35

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Bin mir nicht ganz sicher, ob das in LocalSQL geht:

SQL-Code:
ALTER TABLE <Tabelle> ALTER <Spalte> <TYP>[( <Laenge>)];

hoika 8. Jan 2009 23:27

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Hallo,

nö, so geht das nicht, aber so ...

http://info.borland.com/devsupport/b...structure.html
Example 4 kommt dem am nächsten.

DbiDoRestructure macht auch das.

Aber so nebenbei, es wird nicht die Breite einer Spalte,
sondern die Feldlänge eines Feldes einer Tabelle geändert.


Heiko

Sir Rufo 9. Jan 2009 01:41

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Zitat:

Zitat von hoika
http://info.borland.com/devsupport/bde/bdeapiex/dbidorestructure.html
Example 4 kommt dem am nächsten.

Das ist zu lesen wie Memo.Lines.Count, also immer schön -1 :mrgreen: also Example 3 ;)

Helmi 9. Jan 2009 14:08

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Gibts da auch was von SQL? :-)

hoika 9. Jan 2009 15:24

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Hallo,

unter Paradox nicht.
Einzige Möglichkeit ist das Anlegen eines Feldes Feld2,
Daten dorthin kopieren, Feld1 löschen, Feld1 mit der neuen Länge erzuegen,
Daten aus Feld2 nach Feld1, Feld2 löschen.


Heiko

Helmi 9. Jan 2009 15:26

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
ach so - na gut - dann muss ich das anders lösen

Trotzdem danke

nahpets 9. Jan 2009 15:37

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Hallo,

per SQL sollte es so gehen:
SQL-Code:
alter table "xxxx.db" add column TempFeld DatentypVonUrsprungsfeld;
update "xxxx.db" set TempFeld = Ursprungsfeld;
alter table "xxxx.db" drop column Ursprungsfeld;
alter table "xxxx.db" add column Ursprungsfeld NeuerDatentypFuerUrsprungsfeld;
update "xxxx.db" set Ursprungsfeld = TempFeld;
alter table "xxxx.db" drop column TempFeld;
Das kannst Du dann per Query und ExecSQL ausführen. Das sollte mit der BDE funktionieren, bin mir nur nicht ganz sicher, ob das Column erforderlich ist oder nicht. In der Hilfe zu LocalSQL stehts in eckigen Klammern, ist also wohl optional.

SubData 9. Jan 2009 15:45

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Das geht auch per TTable

Delphi-Quellcode:
//
Edit: Siehe nächster Beitrag.

Helmi 9. Jan 2009 15:46

Re: TTable: Breite einer vorhandene Spalte nachträglich ände
 
Bei "CreateTable" wird aber die komplette vorhandene Tabelle überschrieben und alle Daten sind weg


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz