Autor |
Beitrag |
infomio
      
Beiträge: 110
Win xy
|
Verfasst: Di 10.02.04 13: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 19: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 23: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 23: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 23: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: Mi 11.02.04 00: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: Mi 11.02.04 00: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: Mi 11.02.04 00: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: Mi 11.02.04 00: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 02: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 08: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 10: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 10: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 12: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 12: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 14: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 15: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 16: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 16: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 17: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
|
|