Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TXMLDataSet bei Torry - wie gehts? (https://www.delphipraxis.net/94682-txmldataset-bei-torry-wie-gehts.html)

Delphi-Phil 25. Jun 2007 15:14

Datenbank: Acces • Zugriff über: ADO

TXMLDataSet bei Torry - wie gehts?
 
Hallo...

ich muss aus meiner Access Datenbabnnk exporte in XML machen könne und mir würde von Phoenix die TXMLDataSet bei Torry Komponente empfohlen...

Jetzt habe ich nur überhaupt keine Ahnung :wiejetzt: :wiejetzt: wie die Funktioniert und will unbedingt datenexporte machen...


Also ich hoffe ihr könnt mir helfen und sagen wie die Befehle sind... die Komponente ist jetzt dank Phoenix Hilfe installiert und warte auf den einsatz!!!


Gruß

Phil :hi: :hi: :hi:

DeddyH 25. Jun 2007 15:16

Re: TXMLDataSet bei Torry - wie gehts?
 
Schau mal im Quelltext der Komponente unter public und published, da stehen die Eigenschaften und Methoden, die Dir zur Verfügung stehen. Diese sind hoffentlich so bezeichnet, dass man auf deren Sinn schließen kann.

Delphi-Phil 25. Jun 2007 15:21

Re: TXMLDataSet bei Torry - wie gehts?
 
Zitat:

Zitat von DeddyH
Schau mal im Quelltext der Komponente unter public und published, da stehen die Eigenschaften und Methoden, die Dir zur Verfügung stehen. Diese sind hoffentlich so bezeichnet, dass man auf deren Sinn schließen kann.

Danke für die Antwort, aber wie komme ich in den Quelltext einer Komp. rein...hab ich noch nie gemacht...!!!

Gruß Phil

DeddyH 25. Jun 2007 15:25

Re: TXMLDataSet bei Torry - wie gehts?
 
Datei - öffnen - Pfad_zur_Datei - XMLDataSet.pas

Delphi-Phil 25. Jun 2007 15:29

Re: TXMLDataSet bei Torry - wie gehts?
 
Procedure GetDataPacketProperties(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure GetMetaDataProperties(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure GetFieldDefinitionProperties(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure GetRecordDataProperties(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure GetIndexDefinitionProperties(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure DoAtribAndValue(Var ABeginPos: Integer; AEndPos: Integer; Var AAttribCount: Integer; Var AArray: Array Of TParamAndValue);
Procedure DoFieldDefinitions(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure DoIndexDefinitions(Var ABeginPos: Integer; Const AEndPos: Integer); //I have not tested this routine
Procedure DoRecordData(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure DoFieldData(Var ABeginPos: Integer; Const AEndPos: Integer);
Procedure FindFirst(Const ASubstring: String; Const ABeginPos, AEndPos: Integer; Var AResult: Integer);
Procedure SetDataset(ADataSet: TDataSet);
Procedure SetText(AValue: String);
Procedure CopyToString(ABeginPos, AEndPos: Integer; Var AResult: String);
Protected
Procedure Notification(AComponent: TComponent; Operation: TOperation); Override; // Gmarra <m_gamarra@bol.com.br>
Public
Constructor Create(AOwner: TComponent); Override;
Destructor Destroy; Override;
Procedure Clear;
Procedure LoadFromFile(AFileName: String);
Procedure LoadFromStream(AStream: TStream);
Procedure SaveToFile(AFileName: String);
Procedure SaveToStream(AStream: TStream);[/delphi]

das sind alle Funktionen die Ich finden kann...nur wie baut man die jetzt ein das man eine xml datei bekommt ??
Hat jemand eine Idee..welche Funktion man überhaupt braucht?


Gruß

Phil

Phoenix 25. Jun 2007 15:37

Re: TXMLDataSet bei Torry - wie gehts?
 
Zitat:

Zitat von Delphi-Phil
Delphi-Quellcode:
Procedure LoadFromFile(AFileName: String);
Procedure SaveToFile(AFileName: String);

Also noch deutlicher geht es doch nun wirklich nicht :roll:

Delphi-Phil 25. Jun 2007 16:22

Re: TXMLDataSet bei Torry - wie gehts?
 
okay,

könntest du mir vllt für Procedure SaveToFile(AFileName: String); mal ein Beispiel schriben wie müsste der String aussehen...??

ich weiß nicht so recht wie ich es anpassen soll...

gruß phil

DeddyH 25. Jun 2007 16:25

Re: TXMLDataSet bei Torry - wie gehts?
 
Zitat:

Zitat von Delphi-Phil
wie müsste der String aussehen...??

Z.B. so: 'C:\TestXML.xml'

Delphi-Phil 25. Jun 2007 16:30

Re: TXMLDataSet bei Torry - wie gehts?
 
SaveToFile('C:\TestXML.xml': String);

so vllt ??

DeddyH 25. Jun 2007 16:33

Re: TXMLDataSet bei Torry - wie gehts?
 
Delphi-Quellcode:
SaveToFile('C:\TestXML.xml');
Mal unter uns: hast Du das Programm wirklich selbst geschrieben?

Phoenix 25. Jun 2007 16:35

Re: TXMLDataSet bei Torry - wie gehts?
 
Also ich hab echt keine Ahnung wie Du allein schon die Schüler und Klassenverwaltung geschrieben hast, wenn Du nicht mal weisst wie man einen String-Parameter an einer Funktion übergibt. Ich befürchte fast, die hast Du wirklich in Access zusammengeklickt. Warum hast Du eigentlich dann auch noch eine mordsteure D7 Enterprise bei Dir, wenn Du noch nichtmal eine Prozedur aufrufen kannst? Aber egal. Das tut hier nichts zu Sache. Back to topic:

Ich empfehle Dir, mindestens erstmal das hier: http://dsdt.info/tutorials/erstesprog/
und dann das hier: http://dsdt.info/tutorials/crashkurs/ durchzuarbeiten.

Ich glaube, ohne die grundlegenden Basics hat das keinen, wirklich absolut keinen Sinn. Programmieren ist, obwohl es manchmal so hingestellt wird, kein "zusammenklicken und das läuft schon". Da muss man sich ne Weile intensiv mit Beschäftigen.

Delphi-Phil 25. Jun 2007 17:33

Re: TXMLDataSet bei Torry - wie gehts?
 
so ich habs doch geschafft wir ihr schon sagt...programmieren ist nicht nur klicken...
und in access hab ich mir meine sachen nicht zusammengebaut... son schwachsinn... würde mir ja garnix bringen...

also der export geht nur noch nicht ganz richtig
XML-Code:
<?xml version="1.0" standalone="yes"?>
<datapacket version="2.000" destination="" day="25" month="6" year="2007" hour="17" min="8" sec="35" msec="175">
<metadata fielddefs="yes" indexdefs="no" recorddata="yes" changes="yes">
<fielddefs count="4">
<fielddef name="ID" fieldkind="data" datatype="autoinc" fieldsize="0" displaylabel="ID" editmask="" displaywidth="10" fieldindex="0" required="false" readonly="true"/>
<fielddef name="Klassenname" fieldkind="data" datatype="string" fieldsize="50" displaylabel="Klassenname" editmask="" displaywidth="50" fieldindex="1" required="false" readonly="false"/>
<fielddef name="Betreuer1" fieldkind="data" datatype="string" fieldsize="50" displaylabel="Betreuer1" editmask="" displaywidth="50" fieldindex="2" required="false" readonly="false"/>
<fielddef name="Betreuer2" fieldkind="data" datatype="string" fieldsize="50" displaylabel="Betreuer2" editmask="" displaywidth="50" fieldindex="3" required="false" readonly="false"/>
</fielddefs>
<indexdefs count="0">
</indexdefs>
</metadata>
<recorddata count="5">
<row>
<field name="ID" value="7"/>
<field name="Klassenname" size="17">
<![CDATA[
OC4gS2xhc3NlIDIwMDcvMDg=
]]>
</field>
<field name="Betreuer1" size="-1"/>
<field name="Betreuer2" size="-1"/>
</row>
<row>
<field name="ID" value="8"/>
<field name="Klassenname" size="17">
<![CDATA[
OS4gS2xhc3NlIDIwMDcvMDg=
]]>
</field>
<field name="Betreuer1" size="-1"/>
<field name="Betreuer2" size="-1"/>
</row>
<row>
<field name="ID" value="9"/>
<field name="Klassenname" size="18">
<![CDATA[
MTAuIEtsYXNzZSAyMDA3LzA4
]]>
</field>
<field name="Betreuer1" size="-1"/>
<field name="Betreuer2" size="-1"/>
</row>
<row>
<field name="ID" value="10"/>
<field name="Klassenname" size="18">
<![CDATA[
MTEuIEtsYXNzZSAyMDA3LzA4
]]>
</field>
<field name="Betreuer1" size="-1"/>
<field name="Betreuer2" size="-1"/>
</row>
<row>
<field name="ID" value="11"/>
<field name="Klassenname" size="17">
<![CDATA[
MTIuS2xhc3NlIDIwMDcvMDg=
]]>
</field>
<field name="Betreuer1" size="-1"/>
<field name="Betreuer2" size="-1"/>
</row>
</recorddata>
</datapacket>
Im zb ersten Datensatz bei Klassenname müsste eigentlich 8. Klasse 2007/08 das stehen nur ich sehe das da nicht... vllt hat ja einer nen tipp für mich währe nett...

gruß
Phil

marabu 25. Jun 2007 18:42

Re: TXMLDataSet bei Torry - wie gehts?
 
Hallo Phil,

XMLDataset ist eine Komponente, mit der nicht nur Daten exportiert werden, sondern auch Metadaten. Die Dateien sind in erster Linie für den Import durch XMLDataset bestimmt.

Die Daten werden mit Ausnahme der numerischen Felder als Base64 kodiert und als CDATA gespeichert. Der von dir angegeben String steht da wirklich. Du solltest dir mal überlegen, was du von einem Export erwartest. Wer soll diese Daten später mal importieren können?

Grüße vom marabu

Delphi-Phil 26. Jun 2007 09:29

Re: TXMLDataSet bei Torry - wie gehts?
 
Danke Marabu,
jetzt bin ich schon mal um einiges schlauer... :hello: :hello: :hello: :hello: :hello:

Die Exportierten Daten sollen dann in ein kleines Delphi Tool eingelesen werden und dann bearbeitet werden können, frage... kann ich dies auch tun wenn ich einlesen will also zb über eine query anzeigen und dann bearbeiten will??

Erst wenn dann alle Daten in der XML Datei bearbeitet sind, möchte ich diese wieder in meine Hauptdatenbank Importieren.

Geht das so?? Würdet Ihr es anders machen??? Habt ihr Lösungen parat??


Gruß Phil

marabu 26. Jun 2007 14:48

Re: TXMLDataSet bei Torry - wie gehts?
 
Hallo Phil,

wenn du die Daten einer einzigen Access-Tabelle unbedingt ohne Access pflegen möchtest, dann dürfte das am einfachsten mit einer CSV-Datei möglich sein. XML würde ich nur verwenden, wenn ich auch einen Nutzen daraus ziehen kann. Das sieht mir bei deinem Projekt nicht danach aus.

Freundliche Grüße

Delphi-Phil 26. Jun 2007 21:18

Re: TXMLDataSet bei Torry - wie gehts?
 
Danke für den Tipp,
ich habe auch schon über CSV gelesen und dachte mir es ist nicht schlecht...

Nur wie bekomme ich jetzt CSV Daten hin?? Da hab ich 0,0 Idde zu...

Gruß
Phil

marabu 26. Jun 2007 21:32

Re: TXMLDataSet bei Torry - wie gehts?
 
Hallo Phil,

vielleicht solltest du dir mal diesen Thread durchlesen: klick.

Auch dort geht es um das Thema Access und Export.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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 by Thomas Breitkreuz