Pointerman Geschrieben 10. März 2004 Geschrieben 10. März 2004 Hi! Ich möchte ein ClientDataset in einem Programm verwenden. Dieses ClientDataSet soll Daten sammeln, die aus einer ASCII-Datei extrahiert werden. Diese sollen dann später irgendwann in eine Andere Datei geschrieben werden. Das ClientDataset soll also nur als Puffer dienen. Ich habe nicht vor mit irgendwelchen graphischen Komponenten darauf zuzugreifen, d.h. ich bräuchte doch keine DataSource. Wenn ich jetzt die Felddefinitionen fertig habe und mit open öffnen will um Datensätze anzuhängen bekomme ich eine Fehlermeldung: "Missing data provider or data packet". Irgendwelche Ideen was ich da falsch mache? Hab' gerade ein Brett vorm Kopf!
geloescht_JesterDay Geschrieben 10. März 2004 Geschrieben 10. März 2004 Du brauchst einen TDataSetProvider, den stellst du im ClientDataSet unter ProviderName ein. Zu finden unter... überleg, hab Delphi gerade nicht hier... Datensteuerung glaub ich. Wie das TDataSet.
Pointerman Geschrieben 10. März 2004 Autor Geschrieben 10. März 2004 (Danke erstmal), denn es funzt noch nicht ganz! Also den Dataset Provider habe ich mir mal angeguckt und so wie ich das verstanden habe, liefert der Provider doch Daten aus einer Datenquelle an das ClientDataset. Als ich das ClientDataset mit dem Provider verbunden hab und hernach versuchte es zu öffnen, kam eine Fehlermeldung: "Missing DataSet". Ich denke mal, daß diese Meldung vom Provider kommt, weil ihm noch das Dataset fehlt, das er "providen" soll. Aber des will ich doch gar nicht. Ich will doch nur das es läuft! Ok, wer weiß rat? Es steht diese Lobkönig zur Verlosung --->:bimei
Pointerman Geschrieben 11. März 2004 Autor Geschrieben 11. März 2004 So, für alle die es interessiert: Ich hab eine Lösung gefunden. Der Lobkönig geht also an mich! Meiner --->:bimei Lösung: Man braucht keinen Provider um das ClientDataset zu benutzen. Ich hatte nur einen Fehler beim erstellen der Felddefinitionen gemacht: Felder nicht mit ClientDataset.Fielddefs.Add hinzufügen, denn zum erstellen des Clientdataset mit Cientdataset.CreateDataset hat das so nicht hingehauen. Die Felddefinitionen müssen mit oDataset.FieldDefs.AddFieldDef hinzugefügt werden(ist auch toll in der Hilfe erklärt:rolleyes: ). Dann klappt es auch mit CreateDataset.
geloescht_JesterDay Geschrieben 12. März 2004 Geschrieben 12. März 2004 Ok, war wohl nicht ganz das was du wolltest Hab damit auch nur wenig gemacht bis jetzt. Allerdings hab ich es (wenn ich es gemacht hab) folgendermassen gemacht: Ein Doppelklick auf das ClientDataSet öffnet den Feld-Editor. Dort wählst du im PopUpMenu "Neues Feld" aus und kannst so deine Felder alle anlegen. Die Felder sind Datenfelder (Feldtyp: Daten). Danach kommt das von dir genennate "Dataset erzeugen" - wieder rechtsklick auf das ClientDataSet, und dann nochmal ein rechtsklick und dort wählen "In MyBase..." speichern. Damit wird eine Tabelle angelegt in einer Datei (XML, XML-UTF8 oder binär). Mit LoadFromFile kannst du dann zur Laufzeit immer wieder diese Felddefinitionen einlesen (wenn keine Daten vorhanden sind). (oder per Property fieldName wenn die Datei immer dieselbe ist) diese füllst du dann ganz normal aber musst sie ja nicht speichern, sondern kannst tun damit was du willst. Hatte erst jetzt wieder Delphi hier und konnte mir das nochmal ansehen. EDit: Also so kann man es zur Designzeit alles definieren.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden