Question about program startup and connecting to a DB

I have a program that will contain one main form and many children forms attached to it. Before I even get that far as launching the forms I need to have a routine that will verify that it connect to the database. No sense of even displaying a form if I cannot get to the DB. My main form is called frmMain. Should I have a little routine in there to check and verify that I can connect to the DB. If not, show the error message and exit the form and end the program OR should I have another mechanism to check the DB connectivity. If OK, then show the main form.

I have a class module with all of my ADO calls and procedures. I'm just trying to figure out the best place to place this initially so I can make the references to all of these procedures from any form in my app, which I'll have about 20. Just trying to get this ironed out before I continue because I'll be referencing a ton of DB calls from where ever I decide to initially create the class module.

So my question is where should I place the code to access the class - in my main form frmMain or somewhere else like some sort of form that gets launched and then hidden for the remainder of the execution of the program. Just looking for the best way to do this for future projects and the reasons why or why not doing it one way or another.

Thanks in advance.
LVL 13
samic400Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ahammarCommented:
If your main objective is to simply make sure your app is connected to the database, then I would put in a little routine in the main forms open event to check that.  You could set the forms visible property to false so nothing is seen, then have it become visible only after a connection is made, or bring up a message box indicating an error or to retry and have your app end or whatever you want if the connection does not succeed....
Another way to do it would be to have all your controls hidden except for a label that just something like:
Connecting to main data....Please wait....
After the connection was made, have the label disappear and then show your controls, or have the labels caption change to indicate to retry or whatever you want in the case that a connection does not succeed.
You could also use the forms caption instead of a label if you prefer...

Just a little info that will hopefully help you out...

:-)
Albert

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
samic400Author Commented:
So if I decide to run this check DB code in my frmMain form then it would be logical to create my instance of my class in frmMain and reference everything out of there?

0
ahammarCommented:
I should have read your question a little better as my one track mind this morning was only taking into conseration the connectivity issue.....but I don't see a problem with that if your main form is going to remain open, but as far as it being the BEST way to create an instance of your class, I can't say....I have little experience in that area (I think I'm going to change that now though).  Someone else may come along with better advice than what I can give you on that matter....sorry about that.  I probaby should have just skipped over this question, but I saw it had 0 comments, so I just wanted to see if I could lend a helping hint....hopefully someone else will be by soon...

:-)
Albert
0
The Ultimate Tool Kit for Technolgy Solution Provi

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy for valuable how-to assets including sample agreements, checklists, flowcharts, and more!

dbbishopCommented:
I would start the application in a Sub Main() in a module. Have your database class defined as Public in the module and instanciate it in Sub Main(). If the class was properly instantiated and the database connection was made, then show your form. Otherwise, tyou can dispay a messagebox and exit the application.
0
dbbishopCommented:
I assume you are using VB6. As an alternative, I would still make my startup procedure Sub Main() in a module. Have it perform myForm.Load. You can actually code properties to a form:

Private mblnDBRunning As Boolean
...

Public Property Get IsDBRunning() As Boolean
  IsDBRunning = mblnDBRunning
End Property

In your form Load() method, write the code to instantiate your class and check the database connection. If connected, set mblnDBRunning = True

Then, in your module code:
Private Sub Main()
    myForm.Load
    If myForm.IsDBRunning Then
        myForm.Show
    Else
        ' Code to display message and exit app.
    End
End Sub
0
samic400Author Commented:
Thanks for your input.
0
ahammarCommented:
Thanks for the points and the grade...I hope it helped you out...

:-)
Albert
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.