Solved

ADOExpress problems !

Posted on 2001-07-02
6
173 Views
Last Modified: 2010-04-06
Hi!

I have a few problems. Let me first say that im a newbie at ADOexpress.
(Problem) It's like this ;
Im creating an application(.)where The user selects tables in a database. After the user has selected these tables, the application is supposed to save these (Recordsets) tables in  XML file(s). The application should also support, that the user selects an XML file and updates a table in the database.

So my question is.
What component in ADOExpress should i use to save and load xml files, I've read something about RecordSets...?.
I need some code Example in c++ or op, pleace.!
(I use BCB 5.0 )



?
Let me write some pseudo code.
-- first bit ----
do while list not Nil
 RecordList[i] =  get Recordset from table list()
  i+1
 list.next()
..
for i to i.length() i+1
SaveInXML.RecordList[i]

--- second bit.----

do while list not Nil
 Recordlist[i] = openXMLFile(list)
 i+1
 list.next()
...
for i to i.length() i+1
UpdateTable[list].RecordList[i]
-- end ---

/ wr Henrik Franzen
0
Comment
Question by:swingfly
  • 3
  • 2
6 Comments
 
LVL 1

Accepted Solution

by:
bnemmers earned 50 total points
ID: 6245774
Try using the SaveToFile & LoadFromFile using an
ADODataSet. Here's some sample code.



procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOTable1.SaveToFile('C:\TestXML.xml', pfXML);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if (FileExists('C:\TestXML.xml')) then
    ADOTable2.LoadFromFile('C:\TestXML.xml')

end;

Good luck.
Bill
0
 

Author Comment

by:swingfly
ID: 6246211
Its not hard to load and save to an XML file, the problem is how do you update a database with an open XML file!
0
 
LVL 1

Expert Comment

by:bnemmers
ID: 6246819
I assume you will not know what or if any record were updated, added or deleted.

Because in a sense you have two complete data set. Which one will be the master copy the new xml or the current table in the db?  
Without some control over the xml file you might have to step through each record in the 2nd (XML file) record set and update, insert or delete from the 1st record set (master db).
I would create the same index on both dataset to
insure that you have the same sort order then compare each record against the master db.
 
The best way would have some type of flag in the xml file that would identify what occurred, insert, update or delete.
Then you could just step through the xml dataset and based on the status of the flag perform the needed action on the master db.
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:swingfly
ID: 6247459
Yes, thats true, but can't you solve the problem by using updatebatch ?.. That would be a nice solution, but it doesn't seem to work.


Pesudo :
Temp openXML
ConnectionOpen
Temp use ConnectionOpen
Temp.updatebatch
0
 
LVL 1

Expert Comment

by:bnemmers
ID: 6249526
From what I understand ADODataSet.UpdateBatch is like transaction control. Where you can post all of your changes
at the same time or cancle them also. I'm not aware of any
replacement for TBatchMove from BDE that woks for ADO.
You might have to write you own.

Bill
0
 

Expert Comment

by:SpideyMod
ID: 8280614
Force Accepted

SpideyMod
Community Support Moderator @Experts Exchange
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question