AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ClientDataSet erkennt neues Feld nicht
Thema durchsuchen
Ansicht
Themen-Optionen

ClientDataSet erkennt neues Feld nicht

Ein Thema von Chemiker · begonnen am 4. Nov 2007 · letzter Beitrag vom 18. Nov 2014
Antwort Antwort
Seite 2 von 2     12   
Dicksaiter

Registriert seit: 9. Feb 2008
Ort: Lüneburg
2 Beiträge
 
#11

Re: ClientDataSet erkennt neues Feld nicht

  Alt 9. Feb 2008, 10:10
Hallo Chemiker,

hast Du das Problem lösen können ?
Ich stehe vor dem gleichen, der hier nagegebene Link zeigt nur wie man die Datenbank zur Laufzeit anlegt.
Aber ich habe keinen Hinweis darauf gefunden, wie man zur Laufzeit die Datenbank um ein Feld erweitern kann.
Ist natürlich möglich das mein englisch nicht ausreicht oder ich hab irgend etwas übersehn .

ciao ..Dicksaiter
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: ClientDataSet erkennt neues Feld nicht

  Alt 9. Feb 2008, 16:36
Hallo Dicksaiter,

herzlich Willkommen in der DP.

Nein, ich habe das Problem leider nicht lösen können. Ich wollte auch nicht zu viel Arbeit mit dem Suchen zubringen. Ich benutzte diese Datenbank als „Memory – Stick Datenbank“ um bei Besprechungen aktuelle Betriebsdaten auf jeden Rechner in der Firma zur Verfügung zu haben. Ich habe die Felder neu angelegt und unter einen neuen FileName abgespeichert. Da die Daten von einer richtigen Datenbank kommen und ich nur ein Teil davon brauche war der Aufwand nicht so groß.
Prinzipiell ist es bei Datenbanken ja so, dass man sich vor dem Anlegen genau überlegen sollte welche Felder man braucht und in welcher Beziehung die Daten zueinander stehen.
Damit wird dann vermieden, dass man im Nachhinein ein neues Feld in die Anwendung reinfummeln muss.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Dicksaiter

Registriert seit: 9. Feb 2008
Ort: Lüneburg
2 Beiträge
 
#13

Re: ClientDataSet erkennt neues Feld nicht

  Alt 9. Feb 2008, 17:22
Hallo Chemiker,

Danke für den Willkommensgruß

Ich habe weiter gesucht und folgendes gefunden:

ClientDataSet2.Data:=ClientDataSet1.Data; //kopiere Datenmenge
ClientDataSet1.Close;
ClientDataSet1.FieldDefs.Add('TMPFELD',ftString,20 ); //neues Feld hinzufügen
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
for y:=0 to ClientDataSet2.RecordCount-1 do // Jetzt die alten Daten zurück kopieren
begin
ClientDataSet1.Append;
for i:=0 to ClientDataSet2.FieldCount-1 do
ClientDataSet1.Fields.Fields[i]:=ClientDataSet2.Fields.Fields[i];

ClientDataSet1.Post;
end;


Ich habe es bei mir ausprobiert und es funktioniert. So habe ich ein neues Datenfeld hinzugefügt und die alten Daten behalten.
Ich brauche keine Datei umkopieren.

ciao ..Dicksaiter
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#14

Re: ClientDataSet erkennt neues Feld nicht

  Alt 29. Mär 2008, 18:44
Hallo,

ich hatte das selbe Problem und habe es so gelößt:

1) Beim TClientDataSet Rechtsklick --> Daten löschen
2) Delphi schließen + neu starten
3) Feld hinzufügen
4) TClientDataSet Rechtsklick --> DataSet erstellen
5) TClientDataSet Rechtsklick --> In MyBase-XML-Tabelle speichern


Ist zwar ein wenig umständlich aber so funktionierts bei mir immer.
  Mit Zitat antworten Zitat
Geronimo

Registriert seit: 19. Dez 2006
Ort: Hamburg
38 Beiträge
 
#15

AW: ClientDataSet erkennt neues Feld nicht

  Alt 18. Nov 2014, 10:34
Hallo an alle.

Ich zupfe noch mal diesen alten Thread hier 'raus, weil offensichtlich alle das gleiche Problem haben, zur Designzeit neue Felder einfügen zu wollen/müssen.
Bei mir funktioniert das, wenn zuerst die FieldDefs erstellt werden und anschließend die Felder mit dem Feldeditor. Der Feldeditor scheint die FieldDefs zu
benutzen und greift ins Leere, wenn sie nicht vorhanden sind.

Also folgendes Vorgehen, analog zu ferbys Beitrag:

1) Beim TClientDataSet Rechtsklick --> Daten löschen (Danach steht active auf false.)
2) FieldDefs einfügen
3) Feld hinzufügen
4) TClientDataSet Rechtsklick --> DataSet erstellen (Danach steht active auf true.)

(Ohne An-Aus und so tun, als wäre nichts gewesen.)


Könnt Ihr dieses Verhalten des TClientDataset bestätigen? Oder ist es wieder nur bei mir Zufall?

Gruß
Geronimo
Die Welt ist rechteckig, linear und Gauss-verteilt!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:14 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