![]() |
Datenbank: Advantage Local Server • Version: 7.1 • Zugriff über: Advantage TDataSet
Felder nachträglich erweiterter Tabellen definieren
Hallo zusammen,
entgegen meiner Profilangabe geht es hier noch um eines meiner D7-Projekte. Suchfunktion des Boards... ...habe ich selbstverständlich bemüht. Bin allerdings, vielleicht aufgrund der falschen Suchkriterien, nicht auf eine brauchbare Lösung gestossen... :? Situation: Ich erweitere eine oder mehrere Tabellen um ein oder mehrere Felder. Da die Anwendung diese neuen Felder ja noch nicht kennen kann, müssen die Felddefinitionen um die entsprechenden Felder erweitert werden. Grundgedanke: Ich muß nun wohl beim Anwendungsstart alle Tabellen, die evtl. geändert sein könnten, überprüfen, ob neue Felder hinzugefügt wurden oder nicht, um dann die neuen Felder in die Definition zu übernehmen. Problem: Da es für mich das erste Mal ist, daß sich Tabellen ändern, habe ich keine Ahnung wie ich das anstellen soll... :pale: Fragen:
Ich zähl auf Euch :thumb: |
Re: Felder nachträglich erweiterter Tabellen definieren
Da ich leider nicht weis ob der Advantage Local Server das kann versuchs einfach mal.
SQL-Code:
Kannst natürlich auch andere feldtypen nehemn.
ALTER TABLE tabname ADD feldname CHAR(20);
|
Re: Felder nachträglich erweiterter Tabellen definieren
Danke Frank, das werde ich mal testen. Hilft mir aber im ersten Schritt nicht weiter, da ich ja zunächstmal erkennen (lassen) muß, welche Felder dazugekommen sind...
|
Re: Felder nachträglich erweiterter Tabellen definieren
Wenn Du auf die Felder zugreifen willst, brauchst Du sie doch nicht als Objekte zu definieren. Es reicht doch FieldByName().
|
Re: Felder nachträglich erweiterter Tabellen definieren
Aber woher hat die Anwendung dann die Namen der neuen Felder?
|
Re: Felder nachträglich erweiterter Tabellen definieren
Zitat:
Du liest die Felder mit einem Doppelklick und dem Feldeditor ein. Dann hast Du eine persistente Liste von Feldern. Oder Du läßt die Feldliste leer, dann wird diese intern beim Öffnen der Tabelle generiert und Du kannst auf jedes Feld zugreifen z.B. per FieldByName. Auch ein DbGrid holt sich dann standardmässig alle Felder zur Anzeige. Jetzt ist die Frage: Soll Dein Programm beliebige Tabellen öffnen können oder sind dem Programm die Tabellenstrukturen bekannt? Wenn nicht, solltest Du die Feldlisten leer lassen. Wenn ja, dann musst Du die neuen Felder hinzufügen, wenn Du sie brauchst, z.B. für Displayformat, Caption etc. |
Re: Felder nachträglich erweiterter Tabellen definieren
Ok, etwas genauer:
Das Programm greift auf einige Tabellen zu, die mit der Zeit vergrößert werden, also neue Felder/Spalten erhalten. Bisher habe ich die Feldliste immer selbst erstellt ("liest die Felder mit einem Doppelklick und dem Feldeditor ein"), das Programm neu erzeugt und weitergegeben. Das ist aber ziemlich unpraktisch und natürlich auch irgendwie unnötig. Wenn ich dann per FieldByName auf ein neues Feld zugreife, kommt es zu einem Fehler, da das Feld nicht bekannt ist. |
Re: Felder nachträglich erweiterter Tabellen definieren
Wie gesagt,
lass die Felddefinition einfach leer, und mach einen "Select *" im DataSet. Das sollte dann 100%ig mit FieldByName klappen. Greetz alcaeus |
Re: Felder nachträglich erweiterter Tabellen definieren
Prima, dann werde ich das nachher mal testen. Klingt nach einer ziemlich einfachen Lösung :thumb: Ich geb dann Bescheid, wie es funktioniert hat.
Danke schonmal an alle :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr. |
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