Entwickler-Ecke

Datenbanken - Feldernamen verändern während der Laufzeit


waldmeister - Di 08.04.03 14:39
Titel: Feldernamen verändern während der Laufzeit
Der Titel sagt eigentlich schon alles. ich möchte wissen ob es möglich ist, die Feldernamen in meiner Datenbank (z.B. Vorname, Name, etc.) während der Laufzeit z.b. durch benutzereingaben zu ändern!
wäre gut wenn ihr mir helfen könntet.
ich benutzte paradox 7 tabellen, die table und die datasource komponente, weiß nicht ob das wichtig ist aber ich kanns ja trotzdem mal angeben!


LCS - Di 08.04.03 14:46

Hi
Also zumindest ist es möglich mit SQL die Spaltennamen in einer Tabelle zu ändern.

Quelltext
1:
ALTER TABLE Tabellenname ALTER Spaltenname TO Neuername                    

Ich weiss allerdings nicht ob das im Zusammenhang mit Paradox-Tabelle auch hinhaut. Und ich kann mir nicht vorstellen wozu das gut sein soll. Damit ist das Chaos in der Tabelle ja vorprogrammiert. Es sein denn du willst ein DB-Tool schreiben, mit dem man Tabellenstrukturen bearbeiten soll.

Gruss Lothar

Nachtrag: Mit der BDE-Funktion dbiDoRestructure müsste das auch funktionieren, aber das ist mehr als kompliziert.


waldmeister - Di 08.04.03 15:21

also, die funktion brauche ich, damit der user sich in meinem Adressbuch eigene Adressdatenbanken mit eigenen Kategorien erstellen kann!


Luncustaf - Di 08.04.03 15:47

ja brauch er

sagen wir du hast eine vorgefertigete datenabnk also eine art "rohdatenbank" die pro user neu angelegt wird mit den spaltennamen


Quelltext
1:
vorname | name | strasse | ort | plz                    


nun will aber einer durch ne eingabe in deinem program mdie spalten in der tabelle so ahben


Quelltext
1:
name | vorname | strasse | plz | ort                    


dann brauchst du den alter (eng=abändern/ändern) table - damit kannst du die spalten namen dann ändern !

du musst aber darauf achten das eventuelle inhalte der felder nicht davon beeinflusst werden!


gr€€tz


waldmeister - Di 08.04.03 16:41

das mit den inhalten is egal...das soll nur einmal beim anfang geändert werden könnne, danach is das fest!
kann ich denn net nur 2 vertauschen sondern auch komplett neue namen eintragen?


Quelltext
1:
name | vorname | geb.-datum|                    


soll z.b. zu

Quelltext
1:
email | ICQ | MSN |                    

werden.

is das auch möglich?
kannst du mir ein codebeispiel geben? hab keine ahnung was das alter bedeutet...


Luncustaf - Di 08.04.03 16:52

das alter bedeutet wie oben geschreiben das du in der tabelle etwas abänderst.


Quelltext
1:
2:
3:
4:
5:
1. Create Table
Mit diesem Befehl wird eine Tabelle erstellt. Hinter das Create Table wird der Name der Tabelle
und deren Inhalt geschrieben.
Bsp. create Table Beispiel (test char(20), test1 char(20) Not Null, test2 int)
Der Name der Tabelle ist Beispiel und sie beinhaltet die Spalten test, test1,test2.


du gehst hin undmachst bei der vorhandenen tabelle ein

Drop Tabellenname damit löschst du die vorhandene tabelle

dann amchst du wie oben beschrieben


Quelltext
1:
create table tabellenname (feld1 feldtyp(maxlänge), feld2 feldtyp(maxlänge) angabe ob feld auch leer sein darf(NotNull)); /7NotNull heißt das zwingend in die spalte was eingetragen werden muss bei einem neuen datensatz                    


dann ahst du deine neue tabelle angelegt

--------------------------------------------------

ok hab mir deinen psot geraden ochmal durchgelesen :/ kannzt es auch eifnacher machen :D - das oben brauchst du nur wenn du auch den tabellennamen ändern willst. oder eine neue tabelle erstellen willst

ansonsten reicht vollkommen wie LCS es beschreiben hat


Quelltext
1:
ALTER TABLE Tabellenname ALTER vorname TO Email                    


usw


gr€€tz


waldmeister - Di 08.04.03 17:01

ok, danke!
das wird mir denk ich mal helfen...wenn nicht poste ich wieder!!