AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL->XML->SQL

Ein Thema von dizzy · begonnen am 6. Jul 2005 · letzter Beitrag vom 9. Jul 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL->XML->SQL

  Alt 6. Jul 2005, 16:21
Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos, ist aber wurscht für die Frage ;)
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 .


\\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 .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#2

Re: SQL->XML->SQL

  Alt 6. Jul 2005, 18:20
Moin, moin,

erfreulicherweise haben sich an sowas schon andere ihre Zähne angelegt:

XMLDataSet

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
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL->XML->SQL

  Alt 6. Jul 2005, 20:45
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?)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#4

Re: SQL->XML->SQL

  Alt 6. Jul 2005, 21:17
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
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 14:53
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 .
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 .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#6

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 15:55
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
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#7

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 16:02
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
Martin Schaefer
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 17:45
Zitat von dizzy:
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 .
Du hättest wahrscheinlich die Unit Variants einbinden müssen, damit D7 den Wert Null kennt.
Viele/Alle Funktionen & Konstanten, die sich auf den Datentyp Variant beziehen wurden mit Delphi6
von der Unit System -> Unit Variants ausgelagert.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 17:51
Zitat von mschaefer:
gut das dies kein Net-dpk ist war eigentlich zu erwarten, also geht die dpk Installation natürlich nicht.
Ne, da hast du mich falsch verstanden. Ich habe nicht D2005, sondern D7! Ich brauche nachher nur ein XML-File, dass ich dem im .NET vorhandenen DataSet anbieten kann.

Zitat von mschaefer:
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.
Und da ist das Problem: Ich werde das XML-File nachher eben NICHT mit dieser Kompo auslesen können, da dies auf einem PocketPC via .NET geschehen soll. Und dort muss ich erst mitteilen, wie das File strukturiert ist. Da ich mich aber faktisch garnicht mit XML-Spezifikationen auskenne, ist das allein schon ein Hindernis für mich.

Zitat von shima:
Du hättest wahrscheinlich die Unit Variants einbinden müssen, damit D7 den Wert Null kennt.
Viele/Alle Funktionen & Konstanten, die sich auf den Datentyp Variant beziehen wurden mit Delphi6
von der Unit System -> Unit Variants ausgelagert.
, okay das leuchtet ein. Danke für den Hinweis!
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von rwachtel
rwachtel

Registriert seit: 26. Aug 2004
Ort: Köln
530 Beiträge
 
RAD-Studio 2010 Pro
 
#10

Re: SQL->XML->SQL

  Alt 7. Jul 2005, 17:55
Kannst Du für Deine Aufgabenstellung nicht einfach das TClientDataSet verwenden?
Robert Wachtel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz