| Autor | Beitrag | 
| infomio 
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Di 10.02.04 12:16 
 
Wie kann man Daten in ein XML speichern über TClientDataSet solls gehen, aber wie genau legt man dort Daten ab, liest sie wieder aus, etc
 
 hat da jemand ein Beispiel für mich ???
 
 Danköööö
 _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| MSCH 
          Beiträge: 1448
 Erhaltene Danke: 3
 
 W7 64
 XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
 
 | 
Verfasst: Di 10.02.04 18:45 
 
Du benötigst imho dazu erstmal ein Schema, woher soll denn sonst das Dataset wissen, welche Struktur du hast.
also, schreib dir eine einfache XML-Datei mit allen benötigten Infos auf und rufe den XML-Mapper auf und definiere Datenpakete.
 alles weitere in der OH.
 grez
 msch
 _________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Di 10.02.04 22:45 
 
klingt einleuchtend... und genau das mit dem Schema und dem XML Mapper... keinen blassen Dunst !!!!  _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| catweasel 
          Beiträge: 487
 Erhaltene Danke: 1
 
 Win 7 64bit
 Delphi 7 Second Sedition V7.2
 
 | 
Verfasst: Di 10.02.04 22:50 
 
Geht supereinfach...
 Ich verweise an der Stelle mal auf ein Tut aus nem anderen Forum...
 Da geht das mit dem TCliendtataset und soweit ich weiss ganz ohne mapper ... (Hab jedenfalls nix davon gemerkt...)
www.tutorials.delphi-source.de/mybase/ Ich hoffe Tino ruft deswegen nicht gleich die Prozedur steinigen(catweasel); auf    Catweasel.._________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Di 10.02.04 22:59 
 
	  | Zitat: |  	  | Ich hoffe Tino ruft deswegen nicht gleich die Prozedur steinigen(catweasel); auf | 
 Ich glaube, diese Woche ist der Scheiterhaufen dran.  _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Di 10.02.04 23:18 
 
Scheiterhaufen? Genau den Einstieg habe ich gesucht!!!
 Danke Mann!
  _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Di 10.02.04 23:20 
 
Gibts irgendein Tool, das das Anlegen von "XML-Tabellen" vereinfacht???
Möglichst in Deutsch und Freeware ??? Bin doch ne arme S...
 _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| catweasel 
          Beiträge: 487
 Erhaltene Danke: 1
 
 Win 7 64bit
 Delphi 7 Second Sedition V7.2
 
 | 
Verfasst: Di 10.02.04 23:39 
 
	  | Zitat: |  	  | Gibts irgendein Tool, das das Anlegen von "XML-Tabellen" vereinfacht??? | 
 Naja, also wenn dir er Feldeditor des ClientDataSets nicht zusagt dann keine Ahnung. Die wird ja beim Speichern vom Dataset automatisch angelegt wenn sie noch nicht existiert...
 Catweasel_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Di 10.02.04 23:45 
 
Schade eigentlich, hatte gedacht man könnte über ein create-statement einfach mal ne xml-datei anlegen, die dann von TClientDataset ausgelesen werden kann, würde mir nen Haufen Arbeit ersparen...
 Aber des muß es doch geben!!!
 
 dein Spruch mit den Pommes is cool!
 _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| catweasel 
          Beiträge: 487
 Erhaltene Danke: 1
 
 Win 7 64bit
 Delphi 7 Second Sedition V7.2
 
 | 
Verfasst: Mi 11.02.04 01:08 
 
	  | Zitat: |  	  | Schade eigentlich, hatte gedacht man könnte über ein create-statement einfach mal ne xml-datei anlegen, die dann von TClientDataset ausgelesen werden kann, würde mir nen Haufen Arbeit ersparen... | 
 Welche Arbeit würdest du dir ersparen ?
 Einfach ein paar Felder serstellen.. 
 damit existiert das XML dokument als Grundgerüst schonmal.. (Im Speicher)..
 auf active := true  setzen..
 Jetzt kann man sogar Daten bearbeiten    (natürlich nur wenn man will    )
 Ein Aufruf von
clientdataset.update;  bzw. clientdataset.savetofile... schreibt er was in der Speicher-XML "datei" steht als xml auf Platte... 
 (gibts die Datei noch garnicht, wird sie neu erstellt....ist sie vorhanden wird sie überschrieben) So einfach is das..
 Das ist auch so ein bischen der Haken beider Arbeit mit XML (ohne BDE oder so eben).: Das ganze Teil ist während der Laufzeit komplett im Speicher.....
 Eine XML-Datei die die Schuhgrösse aller  Chinesen enthält wäre wohl etwas unpraktisch    Wenn du also speicherst ohne was einzigeben... Voila da ist die leere XML Datei
 Catweasel_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Mi 11.02.04 07:56 
 
wie macht man dann einen update pder ein delete auf einen bestimmten Datensatz? Das wäre vorerst meine letzte Frage zum Thema XML!
 _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| KidPaddle 
          Beiträge: 351
 
 WinXP,Linux
 D7 Prof, XE7
 
 | 
Verfasst: Mi 11.02.04 09:03 
 
Wie bei jedem normalen TDataset. Mit der Methode Delete wird der aktuelle Datensatz gelöscht. Ein neue Datensatz wird mit Append eingeleitet und mit Post abgeschlossen und bei einer Aktualisierung wird anstelle von Append Edit aufgerufen.
 Also ein Insert geht so:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 
 | Dataset.Append;Dataset.FieldByName('Vorname').AsString := 'Thomas';
 Dataset.Post;
 |  Also eine Aktualisierung geht so:
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 
 | Dataset.Edit;Dataset.FieldByName('Vorname').AsString := 'Thomas';
 Dataset.Post;
 |  Gruß
 KidPaddle
Moderiert von  Klabautermann: Delphi-Tags hinzugefügt. | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Mi 11.02.04 09:07 
 
dann bräuchte ich aber die Möglichkeit einer SQL-Abfrage o.ä.
 wie macht man dann ein update auf einen bestimmten Datensatz, wenn man keine datesensitiven Elemente wie DBGrid oder DBEdit-Komponenten verwenden will ???
 _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| catweasel 
          Beiträge: 487
 Erhaltene Danke: 1
 
 Win 7 64bit
 Delphi 7 Second Sedition V7.2
 
 | 
Verfasst: Mi 11.02.04 11:28 
 
mit Update datest du alles up (die "Datenbank" an sich).
 Catweasel
 _________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Mi 11.02.04 11:43 
 
und wenn ich nicht alles updaten will ??? Ist dann Paradox mit einem BDE-Ersatz besser???  _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| catweasel 
          Beiträge: 487
 Erhaltene Danke: 1
 
 Win 7 64bit
 Delphi 7 Second Sedition V7.2
 
 | 
Verfasst: Mi 11.02.04 13:54 
 
Ä... wenn ich eine XML Datei update und die Datensätz unverändert lasse dann ist das update identisch mt dem Orginal.
 Wenn du also Datensätze 2,5 und sieben nicht "updaten" willst. Dann veränder sie eben einfach nicht     Mach dir mal klar wie das Clientdataset arbeitet...
 Catweasel_________________ Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Mi 11.02.04 14:51 
 
  sorry war ne lange Nacht...
 aber wie filert ihr dann einen Satz raus? ich will z.B. aus einer Kundentabellle den mit der ID 3667 bearbeiten. Geht das dann mit ner while break schleife oder kann man auch fragen: select * from kunde.xml where kunid = 3667 ???_________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| KidPaddle 
          Beiträge: 351
 
 WinXP,Linux
 D7 Prof, XE7
 
 | 
Verfasst: Mi 11.02.04 15:13 
 
Sieh dir bitte FindKey oder Locate von TClientDataset an. Damit springst Du zu diesem Satz und kannst mit Edit/Post den Datensatz ändern. Desweiteren ist die Filter - Property ganz nützlich, um nur noch die Daten zu haben, die zu dem Filter passen.
 Ich würde mir mal die Grundlagen zum Umgang mit TDatasets ansehen, denn das hat werde was mit XML oder mit SQL zu tun.
 
 Gruß
 KidPaddle
 | 
|  | 
| infomio  
          Beiträge: 110
 
 Win  xy
 
 
 | 
Verfasst: Mi 11.02.04 15:30 
 
Danke Leute, ihr seid spitze!!! Jetzt geb ich Ruh! _________________ Viele Wege führen nach Rom - aber welcher führt zurück???
 | 
|  | 
| Udontknow 
          Beiträge: 2596
 
 Win7
 D2006 WIN32, .NET (C#)
 
 | 
Verfasst: Mi 11.02.04 16:11 
 
Wer´s glaubt...     Ähm, was hat den bitte schön das TClientdataset großartig mit XML zu tun? Gut, man kann die Daten im XML-Format abspeichern und wieder einlesen, aber das war´s doch dann auch schon. Datenmanipulation über Dataset.Edit etc. dagegen hat nicht die Bohne mit XML zu tun. Bitte dann ein neues Topic aufmachen...
 Cu,
 Udontknow | 
|  |