SQLServerCentral Article

Changing Databases Using XML


Introduction and Scope

As a database developer , you may have being fed

up with the never ending customer changes. Actually this is not only relevant to

database developers but for all of the other developers. But for database developers

has to

meet the customer requirements they may need to change the databases. But if

these changes are done by manually you must list out all the changes to be done

and do it perfectly. It is not sound methodical isn't it? So we have to find out

an elegant way of doing it.

What are the changes?

What are the changes that you may need to do for the

databases? They can be creating a new table, dropping an existing the table,

altering an existing table, deleting existing data of a table, inserting some data.

This all the changes need not to be done to only for one database. Their can be

more than one database depending on the customer's needs. For example I have a

done a project which contains configuration data in one database and day to day

transactions are saved in some other database.

How can we do this?

We can simply write a VB application so that it can change

the databases. These changes may not be done at once. There can be changes for

two three times. If we use a simple VB application every time we need to change

application so that it does the necessary changes to the relevant database.

Problem will become more worse if you are having several customers, and they are

asking several changes. Then you will have to keep more than one EXE for this

simple and straight forward task. We, our self  have made our life uneasy.

Haven't we?

If we can write an exe so that it reads some other source

which users can change and do the changes it will be handy. We just need to

change the source file rather than the VB application. Text file would do the job

for us. But XML file be the most suitable one. This gives you another advantage

over the VB application. That is XML file size will be just over 2-3 KB which you can

send it through an e-mail.

XML File

Let's first create the XML file.

Figure 1

Figure 1 is the listing of the XML file. we may call it


There are are several things in the XML file which I have not

discussed earlier. First of them is the Version. This is for the reference.

Version would be enough to identify the changes that has done to the

database. As I discussed earlier commands are separated for the databases.

Here I have used two databases which are Config and Transaction. As you can see

there is a another XML tag called CopyData. Sometimes you need to store some

information which may to be entered by users. For an example if you want to

store country list in a table (of course you can get the country list from the

windows registry) which you haven't send it to customers earlier. Still you can

use INSERT command and do it. But better way is sending the template data in a MSAccess table and copy those data with the aid of

a VB application.

VB Application

For this VB application I have used Microsoft XML ,v 3.0 and

Microsoft Activex Data Objects (ADO) 2.7 library.

Figure 2

Above function will load the XML and read it's content. From the

XMLNode2.baseName it is identify whether it has to change the database or it has

to copy the data.  Depending on that it calls the two functions.


Figure 3

Figure 3 shows how it changes the database which is self


are connection strings which you can build depending on your database.

Figure 4

Figure 4 shows how to copy the template data to the customers



This can be improved to keep the updated version in the

customers computer say in windows registry so that when you are running the next

upgrade you can check the existing version. Better if you can keep the

date as well there.


My idea is to introduces a simple way to the database

upgrades with using the power of XML. You may have great ideas than this. Fell

free to share your experience and creative ideas with us and Let's make database

upgrade an normal work from what it looks like a mess!


You rated this post out of 5. Change rating




You rated this post out of 5. Change rating