Autor Beitrag
infomio
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: Di 10.02.04 23:45 
klingt einleuchtend... und genau das mit dem Schema und dem XML Mapper... keinen blassen Dunst !!!! :cry:

_________________
Viele Wege führen nach Rom - aber welcher führt zurück???
catweasel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: Mi 11.02.04 00:18 
Scheiterhaufen? Genau den Einstieg habe ich gesucht!!!
Danke Mann!
:wink:

_________________
Viele Wege führen nach Rom - aber welcher führt zurück???
infomio Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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!

:lol:

_________________
Viele Wege führen nach Rom - aber welcher führt zurück???
KidPaddle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
Dataset.Append;
Dataset.FieldByName('Vorname').AsString := 'Thomas';
Dataset.Post;


Also eine Aktualisierung geht so:
ausblenden Delphi-Quelltext
1:
2:
3:
Dataset.Edit;
Dataset.FieldByName('Vorname').AsString := 'Thomas';
Dataset.Post;


Gruß
KidPaddle

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
infomio Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: 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 :roll:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: Mi 11.02.04 15:51 
:lol: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110

Win xy

BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 11.02.04 17:11 
Wer´s glaubt... :wink:

Ä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