AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Felder nachträglich erweiterter Tabellen definieren
Thema durchsuchen
Ansicht
Themen-Optionen

Felder nachträglich erweiterter Tabellen definieren

Ein Thema von Kevin · begonnen am 22. Mär 2005 · letzter Beitrag vom 22. Mär 2005
Antwort Antwort
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#1

Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 09:03
Datenbank: Advantage Local Server • Version: 7.1 • Zugriff über: Advantage TDataSet
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...


Fragen:
  • Wie erkenne ich überhaupt, ob neue Felder hinzugefügt wurden?

    und
  • Wie muß/sollte ich dann weiter vorgehen?



Ich zähl auf Euch
Kevin
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 09:07
Da ich leider nicht weis ob der Advantage Local Server das kann versuchs einfach mal.

ALTER TABLE tabname ADD feldname CHAR(20); Kannst natürlich auch andere feldtypen nehemn.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 13:01
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...
Kevin
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 13:15
Wenn Du auf die Felder zugreifen willst, brauchst Du sie doch nicht als Objekte zu definieren. Es reicht doch FieldByName().
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 13:35
Aber woher hat die Anwendung dann die Namen der neuen Felder?
Kevin
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 13:48
Zitat von Kevin:
Aber woher hat die Anwendung dann die Namen der neuen Felder?
Wenn Du mit TDataSet Komponenten arbeitest, gibt es zwei Möglichkeiten:
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 14:12
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.
Kevin
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 14:22
Wie gesagt,

lass die Felddefinition einfach leer, und mach einen "Select *" im DataSet. Das sollte dann 100%ig mit FieldByName klappen.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Felder nachträglich erweiterter Tabellen definieren

  Alt 22. Mär 2005, 14:30
Prima, dann werde ich das nachher mal testen. Klingt nach einer ziemlich einfachen Lösung Ich geb dann Bescheid, wie es funktioniert hat.

Danke schonmal an alle
Kevin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz