![]() |
Re: ClientDataSet erkennt neues Feld nicht
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 :oops: . ciao ..Dicksaiter |
Re: ClientDataSet erkennt neues Feld nicht
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 |
Re: ClientDataSet erkennt neues Feld nicht
Hallo Chemiker,
Danke für den Willkommensgruß :-D 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 |
Re: ClientDataSet erkennt neues Feld nicht
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. |
AW: ClientDataSet erkennt neues Feld nicht
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 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