Autor Beitrag
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Do 01.07.10 12:02 
Moin Forum,

kann ich die Struktur einer Paradox-tabelle nachträglich ändern?

Ich dachte mir das ungefähr so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  with TableTeiledaten.FieldDefs.AddFieldDef do begin
    Name     := 'nacharbeit';
    DataType := ftString;
    Size     := 18;
  end;


Danke im voraus
Gruß Oliver

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Do 01.07.10 12:55 
Hallo,

ich nehme an, am einfachsten wird es per SQL sein. In etwa so:

ausblenden Delphi-Quelltext
1:
2:
Query1.SQL.Text := 'ALTER TABLE Teiledaten ADD nacharbeit Varchar(18)';
Query1.ExecSql;


critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)
jjturbo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Fr 02.07.10 07:50 
Ok, das funktioniert, danke erst mal.

Jetzt wird in meinem Projekt diese Tabelle mit TTable geöffnet, die neue Spalte wurde ordnungsgemäß hinten angehängt. Jetzt möchte ich diese Spalte aber weiter vorne anzeigen.

Kann ich die neue Spalte per SQL an einer bestimmten Position einfügen? Oder eine Spalte innerhalb der tabellenstruktur verschieben?
Oder kann ich die Spalten in meinem TDBGrid tauschen, damit die neue Spalte einfach weiter vorne angezeigt wird?

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
Critter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 328
Erhaltene Danke: 3

Windows 7
Delphi 7 Pro.
BeitragVerfasst: Fr 02.07.10 10:55 
Hallo,

da gibt es sicher mehrere Wege, wobei ich aber ewig nicht mehr mit Table Objekten in Delphi gearbeitet habe und deswegen keine präzisen Antworten geben kann. Aber vielleicht reicht es ja noch für ein paar Denkanstöße:
  • Eventuell lassen sich die FieldDefs des Tabellen Objektes umsortieren, das sollte keinen wirklichen Einfluss auf die Tabelle haben, wenn mich die Erinnerung nicht täuscht.
  • Wenn du ein tDBGrid nutzt, kannst du hier auf jeden Fall über Columns was machen.
  • Du könntest anstelle von tTable ein tQuery nutzen und die Spalten gleich in der gewünschten Reihenfolge selektieren:
    ausblenden SQL-Anweisung
    1:
    2:
    SELECT SpaltenName1, SpaltenName3, SpaltenName2, SpaltenName7
    FROM Tabellenname

  • Wenn es dir wichtig ist, dass die Daten auch in der Datenbank in der richtigen reihenfolge liegen, könntest du mit einer geschickten Kombination von ALTER TABLE RENAME TO, CREATE TABLE, INSERT INTO und DROP TABLE eine neue Tabelle mit alten Namen erstellen, die Daten aus der umbenannten alten Tabelle herüber kopieren und dann die umbenannte alte Tabelle löschen. Das aber ist ein ziemlich übertriebener Aufwand für einen verschwindend geringen Effekt.


Ich hoffe es ist etwas dabei.

critter

_________________
Diejenigen, die grundlegende Freiheiten aufgeben, um ein wenig mehr vorrübergehende Sicherheit zu erkaufen, verdienen weder Freiheit noch Sicherheit.
(Benjamin Franklin;"The Papers of Benjamin Franklin", Vol. 6, Apr. 1, 1755, through Sep. 30, 1756)