![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos, ist aber wurscht für die Frage ;)
SQL->XML->SQL
Moin!
Folgendes muss ich realisieren: Eine Delphi-Anwendung ermittelt aus einer Tabelle einer SQL-DB ein paar Datensätze, die bestimmten Kriterien entsprechen. Diese muss ich nun SO in eine XML-Datei verpacken, dass ich sie mittles eines .NET-Datasets (im Compactframework) als Datenquelle verwenden kann. Dort werden dann Felder der Datensätze vom User befüllt, und nun soll meine Delphi-Anwendung diese geänderten Daten aus dem XML-File in die lokale DB wieder einpflegen. Meine Frage ist nun: Wie erzeuge ich aus, z.B. einer Table, ein XML-File welches wie o.g. verwendbar ist? Bzw. wie kann ich selbiges auch in Delphi wieder einlesen? Ich habe nun so Dinge wie TXMLTransformProvider u.a. gefunden, aber aus der Hilfe zu denen wird mir mal so überhaupt garnicht klar, was die Dinger können, und wie sie im groben eingesetzt werden, und ob sie mir überhaupt bei meinem Problem weiter helfen :stupid:. \\Edit: Das ganze sieht mir reichlich komplex aus... Ich bin schon kurz davor es dann doch mit CSV-Files zu machen, und diese dann zu parsen. Die Funktion für die ich das brauche ist ja eher eine Zugabe zu einem Programm - das sollte jetzt nicht wer weiss wie generisch und perfekt sein - nur funktionieren :D. |
Re: SQL->XML->SQL
Moin, moin,
erfreulicherweise haben sich an sowas schon andere ihre Zähne angelegt: ![]() Der XMLDataset wird verwendet, um den Inhalt eines Datensatzes in XML umzuwandeln, damit die Daten zwischen zwei Remoteanwendungen ausgetauscht werden können. XMLDataset wandelt den Datensatz in XML derart um, daß der Datensatz am Zielrechner rekonstruiert werden kann. Grüße // Martin |
Re: SQL->XML->SQL
Danke dir schonmal! Ich schau's mir morgen im Büro gleich mal an. Ist das produzierte XML-File dann nur wieder von dieser Kompo lesbar, oder kann ich da mit einem .NET-Dataset auch dran gehen? (Bzw. was muss ich tun, damit eben dies funktioniert?)
|
Re: SQL->XML->SQL
Die Komponente kann ihre eigene Struktur wieder lesen. Im Prinzip mü´te die auch an Net anzupassen sein. Letzlich hängen dahinter ja nur Fileoperationen. Die Ableitung der Komponente muß dann nochmal überarbeitet werden...
Bis morgen // Martin |
Re: SQL->XML->SQL
Ich habe das Teil nun mal angefasst, und konnte es leider schon nicht installieren. Zunächst meinte es die vcl50 zu brauchen (ich habe D7), und im 2. Anlauf kannte er an einer Stelle den Bezeichner "Null" nicht, der einem Variant zugewiesen werden soll. Ändern in "nil" brachte nur den neuen Fehler dass Variant und Pointer inkompatibel sein :D.
Der Beschreibung nach habe ich allerdings so meine Bedenken ob ich .NET die erzeugte Struktur mal eben beibringen kann, zumal dazu wie ich gelesen habe diverse Files nötig wären, die diese erstmal beschreiben. In Anbetracht des geringen Umfangs der Funktion im Gegensatz zum Aufwand dies mit XML zu machen (für mich, da ich sehr wenig von XML weiss), werde ich dann wohl doch ein proprietäres oder CVS-basiertes Format zum Austausch benutzen. Danke dir trotzdem für den Link und den guten Willen :). |
Re: SQL->XML->SQL
Moin, etwas Grübel,
gut das dies kein Net-dpk ist war eigentlich zu erwarten, also geht die dpk Installation natürlich nicht. Nimm einfach Menü: Komponente Unterpunkt Komponente installieren. Eventuell definierst Du Dir hier ein eigenes Package. Das sollte gehen, den ich habe ja auch kein D5 und daher ist das dpl-File für mich auch nichtig. Sonst ist die Komponente einfach von TComponent abgeleitet. Das fürfte die Vcl-für Net daher mitmachen. Als Eigenschaft hat Sie dann auch eine Dataset-Property, dass ist auch nur VCL. Würde mir das Thema Komponenteninstallation nochmal anschauen. Der Clou der Komponente ist ja gerade, dass man nicht sich selbst mir der XML-Struktur herumschlagen muß, sondern den DataSet angibt und die Komponente daraus eine XML-Struktur beim Speichern in ein Textfile aufbaut. Grüße // Martin |
Re: SQL->XML->SQL
Das Variant-Problem:
Bei Varianten gab es von D5 bis 2005 doch einige änderungen. Unter D& geht das Zuweisen eines Null-Wertes an eine Variante so: Null( Variante ); Grüße // Martin |
Re: SQL->XML->SQL
Zitat:
Viele/Alle Funktionen & Konstanten, die sich auf den Datentyp Variant beziehen wurden mit Delphi6 von der Unit System -> Unit Variants ausgelagert. |
Re: SQL->XML->SQL
Zitat:
Zitat:
Zitat:
|
Re: SQL->XML->SQL
Kannst Du für Deine Aufgabenstellung nicht einfach das TClientDataSet verwenden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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-2025 by Thomas Breitkreuz