Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mit TADOquery XML Datei erzeugen und wiedereinlesen! (https://www.delphipraxis.net/143120-mit-tadoquery-xml-datei-erzeugen-und-wiedereinlesen.html)

R2009 10. Nov 2009 06:05

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

Eine Access Datenbank besitzt 2 Tabellen.
Eine gefüllt mit Daten, die andere leer aber gleiche Struktur.
Die erste wird mit ADOquery1.savetofile in eine XML Datei geschrieben.
Danach wird die XML datei mit ADOQuery2.loadfromfile geladen.
An jede Query habe ich eine Datasource und ein Grid gehängt.
Speichern funktioniert einwandfrei.
Laden funktioniert einwandfrei. Ich kann die Daten im 2. Grid sehen.
Nur in der Datenbank selbst steht nichts.
Warum?

Hab den Code angehängt. Ist nicht kommentiert. Nur zum Testen. Ich nutze D7 prof.

Grüsse
Rainer

R2009 10. Nov 2009 11:25

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Hi,

habs zusätzlich mit:

Delphi-Quellcode:
    ADOQuery2.LoadFromFile('Test.xml');
    ADOQuery2.UpdateBatch(arAll);
    ADOQuery2.close;
versucht.
Hat auch nichts genutzt. Die Daten scheinen nur im Recordset zu existieren.

Grüsse
Rainer

p80286 10. Nov 2009 16:53

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
hallo Rainer,

Ich denke mal das kann nicht funktionieren. Das Recordset der Query enthält das Ergebnis einer Query (sieht so aus wie eine DB-Tabelle) ist aber eigentlich nicht mit der DB verbunden.
Du müßtest die Daten dann mit
Delphi-Quellcode:
 Query.SQL.Text:=' insert into TABELLEx ([i]Feldliste[/i]) values(werte)';
 Query.sqlexec;
wieder wegschreiben.

Für Deine Zwecke wärst Du wahrscheinlich mit ADOTable besser bedient.

Gruß
K-H

R2009 11. Nov 2009 05:30

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Hi p80286,

das funktioniert mit einer table leider auch nicht.
Das SQL Statement werde ich ausprobieren.
Gibts doch eigentlich garnicht, dass das hier noch niemand ausprobiert hat!
Hat noch niemand XML Files zum Datenaustausch benutzt?

Grüsse
Rainer

R2009 11. Nov 2009 05:49

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Hi,
ich habe, als Versuch, die table mit der ich einlese, auf die gleiche Datenbaktabelle eingestellt und
dann die XML datei geändert. danach habe ich eingelesen. Funktioniert nicht.

Grüsse
rainer

alzaimar 11. Nov 2009 06:26

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Zitat:

Zitat von R2009
Gibts doch eigentlich garnicht, dass das hier noch niemand ausprobiert hat!

Wozu, wenns nicht funktioniert? Kann es auch nicht. Schau mal in den Quellcode von 'LoadFromFile'.
Zitat:

Zitat von R2009
Hat noch niemand XML Files zum Datenaustausch benutzt?

Doch, aber ich verwende dann ein TClientDataset und einen TDataProvider, damit ist das kein Problem.
Das TClientDataset dient dann quasi als Import/Export-Schnittstelle für die XML-Dateien (die allerdings ein anderes Format haben, als das, was ADO da bastelt).

sx2008 11. Nov 2009 07:03

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Du könntest noch versuchen das Recordset vorher von der Connection abzutrennen.
Fachbegriff "Disconnected Recordset" http://www.devguru.com/features/tuto...tDisconnRS.asp
Delphi-Quellcode:
ADOQuery2.Connection := nil;
ADOQuery2.LoadFromFile('Test.xml');
ADOQuery2.Connection := ADOConnection1;
ADOQuery2.UpdateBatch(arAll);
ADOQuery2.close;

R2009 11. Nov 2009 07:06

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Hi alzaimar,

Wie soll ich denn wissen, dass etwas nicht funktioniert wenn ichs nicht probiere!
Dass du das weisst ist mir klar.
Ich habe leider nicht soviel Erfahrung im Umgang mit Datenbanken.


Zur Sache: du hast Recht. Der Code ist schon etwas dubios.
Ich frage mich wie der Inhalt der XML Datei überhaupt im Grid erscheint.
Ich kann nicht sehen wie das funktionieren soll.

Grüsse
Rainer

R2009 11. Nov 2009 08:33

Re: Mit TADOquery XML Datei erzeugen und wiedereinlesen!
 
Hi sx2008,
danke für deine Idee. Funktioniert leider auch nicht.
Aber wie alzaimar schon bemerkt hat, kann eigentlich auch garnicht funktionieren.
Wenn man in den Code schaut findet man nichts was das Ganze laden könnte.

Grüsse
Rainer


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 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