Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Visual Studio.NET / General / May 2006

Tip: Looking for answers? Try searching our database.

Creating/Altering Database Schemas via Code

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
bill - 31 May 2006 01:39 GMT
I have a conumdrum. Where I am employed, the decision has been made,
against my protests, to create/alter the database for a suite of
applications in the VB code! (VS 2005/SQL Server 2005)
That is,
1) when the "main" application starts it checks if the DB exists (on
the server in an INI file)
2)If it does not exist, it creates it, not using SQL Scripts, but by
running the methods explained in step 3
3)Each table that is needed is associated with a VB class. Everytime an
instance of that class is created it checks to see if the table exists,
if not it creates it.
4) Tables are "versioned". The "version" of each table is hardcoded in
the VB code, and stored in a table in the DB.
5)Thus the same Major.Minor release of an application can be using
different table "versions"
6) If "versions" in the DB and the App do not match, then "ALTER Table"
sql statements are supposedly created automagically and can then be run
by an "administrator" -- Please note that an "administrator" is not
necessarily a programmer or DBA, it can Customer BettySue who has admin
privaleges for the application.

Is it just me or is this crazy?
I have never heard of major applications (a suite of at least 9 client
server and windows services -- used in the Public Safety Sector of all
things) managing their databases in this way. If this is common
practice, please let me know.

Any suggestions/links/horror stories I can use to help stop this
madness?

If this is the wrong place to post this, i apologize. Let me know where
to post.

Thanks,
Bill
Phil Cairns - 31 May 2006 06:59 GMT
> I have a conumdrum. Where I am employed, the decision has been made,
> against my protests, to create/alter the database for a suite of
[quoted text clipped - 25 lines]
> Any suggestions/links/horror stories I can use to help stop this
> madness?

Sorry, but I use a similar mechanism. I have a table called sysparams
that contains name/value pairs, and one of the names is 'dbversion'. The
value is the current database version, and if the DB version is lagging
behind the application, the application sends a bunch of "ALTER TABLE"
or "DROP VIEW/CREATE VIEW" or whatever commands to the database before
continuing with the execution.

Mind you, all of these queries are hand-coded by me and embedded into
the application, so the idea of BettySue seeing the queries doesn't come
into it. Also, if the program is built for an earlier version, it may
well crash. However, I tend to be pretty cautious and not remove fields
if I can avoid it, and if I can't, I give the users a more vigorous
recommendation to upgrade all programs or none all.

The class I use is called DataManager, and it is common to all
applications in the suite, so the first one to be started after the
system upgrade will bring the database up to date.

Phil
wmlanza@gmail.com - 31 May 2006 22:41 GMT
Yes, but this suite is comprised of at least 9 different apps, with 5-6
different developers.
The Sql statement are not "hand coded" they are generated through
functions, the alter statements are supposedly generated
"automatically". Referential integrity and indexes are at the whim of
the individual developer -- thus there is not much. There is no way to
create stored procedures and views, hence, any complicated query
(joins, etc) is one humongus string in the code.
Typed datasets are near impossible to use, using grids in design mode
is not possible, because columns are dependent on the "automatic" table
creation...blah blah blah. I apologize for ranting, but it is painful
to stand by and watch.

> > I have a conumdrum. Where I am employed, the decision has been made,
> > against my protests, to create/alter the database for a suite of
[quoted text clipped - 45 lines]
>
> Phil

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.