Autor Beitrag
saxe66
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 104



BeitragVerfasst: Sa 25.09.04 17:03 
Hat jemand einen Tip, wie ich die Struktur eines Datenbankfeldes einer bestehenden und schon mit Werten gefüllten Paradoxtabelle über eine Routine ändern kann ?
Konkret geht es um die Erweiterung eines Char-Feldes von 8 auf 13 Zeichen.

Vielen Dank im Voraus ...
heinze
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112

XP
D4 Prof
BeitragVerfasst: Sa 25.09.04 17:10 
Ein etwas umständliche Lösung wäre die Datensätze in einer anderen Auszuglagern, die alte Löschen, neu bauen und wieder füllen, aber bin mir sicher das es noch besser Lösungen gibt

_________________
Für Fehler haftet die Tastatur bzw Für Gramatik ist meine legasthenie zu verklagen sonstige Verbesserungsvorschläge meiner Text bitte per pn an mich
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Sa 25.09.04 20:50 
hallo saxe!

sieh dir dazu 'localsql.hlp' im ordner BDE an. dort findest du eine erklärung der einzelnen sql-statements mit anwendungsbeispielen.

ich würde eine query nehmen, mit
 ALTER TABLE tabellenname ADD neuesFeld CHAR(neueLänge)
ein neues feld in der gewünschten länge anlegen, den inhalt des alten feldes mit
ausblenden Delphi-Quelltext
1:
 UPDATE tabellenname SET neuesFeld = altesFeld					

umschaufeln und anschliessend mit
 ALTER TABLE tablename DROP altesFeld
das zu kurz geratene feld als deiner tabelle entfernen.

mfg, stefan

ps: die query mit ExecSql starten und nicht mit Open ;)
bockwurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 191

win98 /XP
D1 D5 Prof DE2005PE
BeitragVerfasst: Mo 29.11.04 15:08 
Die Lösung von grayfox hat aber leider Nachteile,
1. Mein NeuerName ist unterschiedlich zu dem AltenNamen
2. Die Reihenfolge der Datenfelder hat sich geändert
3. Wie sieht es mit Indizs etc aus. Die werden doch nicht mitgenommen, oder?1

Es muß doch eine Möglichkeit geben, dies mit einer einzelenen Zeile zuerledigen. In Paradox ist es doch auch möglich, einfach in die Feldstruktur zu gehen und die die alte Feldlänge durch die neue zu ersetzten.

Ich habe aber in Büchern leider auch keine Möglichkeit gefunden.

lg. Andreas Orban
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 29.11.04 16:49 
hallo andi!

also, so ganz versteh ich deine einwände nicht :?:
1) wird dein umbenennen nur mit einem anderslautenden namen funktionieren
du kannst ja nach dem löschen des ursprünglichen feldes dem neuen feld wieder den
alten namen zuteilen
2) ist die reihenfolge der felder in der tabelle egal
3) für die richtigen indizes musst du selbst vorsorge treffen.

in der BDO läßt sich dein vorhaben leichter bewerkstelligen - aber ich hatte es so verstanden, dass du eine funktion dafür haben wolltest.

mfg, stefan