I'm going to ask a very general question, I'll apologize now.

I have no idea what to ask or where to start when building a Database Application.

I'm using windows xp and do have office 2002 but don't want to use microsoft access.

I want it to run on a windows operating system.

I would like to build a gui for entering data and viewing data (kind of like an information dashboard) and also the ability to create reports. This part is really programming related so I won't go on.

I understand that for the application to talk to a RDBMS (lets assume something like Microsoft SQL Server for now) I will need a ODBC driver or driver manager of some sort.

I'm failing to understand how the three components connect. I just want to gain a more abstract view before delving into this. I have a very long time to learn what I need to learn but am having lots of trouble starting.

1 - Do the ODBC drivers come with the RDBMS like SQL Server or is the ODBC driver specific to the programming language used such as C++ or Java.

2 - When I have build a GUI program (using say WX widgets) and compile it, does it incorporate the ODBC driver when I compile it or are the GUI App, OCBC driver and RDBMS all a separate application installed on one computer?

I know this is a very general question but I'm failing to understand some very basic concepts. If you can recommend a good book or some books to read which will prompt this understanding it would be very well appreciated. I've searched over several but not sure what to get. Lets assume I'll use C++ to build the application and SQL server as the RDBMS. Not sure about the ODBC driver though?

Thanks so much.

1. ODBC driver usually "comes with" the RDBMS, or can be installed separately (a.k.a. "Client Tools").
2. The driver is usually an external file (or files) like a .DLL or .JAR that you make calls to just like any other .DLL or .JAR. Depending on what language you program in, the syntax can vary widely. When you compile, it doesn't actually include the driver in your .exe, but any machine where you run the program has to also have the .DLL or .JAR to reference at run-time.

The RDBMS will usually be running on a separate server-class machine, but for development purposes most RDBMS's have dev versions that can be installed on your local machine. Your friendly neighborhood Database Administrator should be able to hook you up with an ODBC driver and permissions to an RDBMS instance (assuming you have a DBA to ask).

For actual programming, your best bet is to google using "C++ ODBC Tutorial" for examples and tips rather than buying a book. That will get you started and might be enough. Additionally, many object-oriented languages have "wrapper classes" to insulate you somewhat from the complexities of straight ODBC calls.

Good luck!

Can I suggest you look at MS Access in the first instance. It is a good starting point for learning about developing database applications. Whilst the programming is in VB not C# for a new comer it provides all you will need to develop your application.

Thanks BitBlt, thats a good explanation. I'll certainly be looking up a tutorial on that.

Chris, thanks for coming back. I'm familiar enough with access but it just doesn't tell me what I need to know to build a desktop database app from scratch. I know I asked about server level above but I'm now thinking a desktop app is what I really want.

I've recently discovered that Sqlite is used for this kind of thing. Can be compiled using a C compiler and I think it's just what I'm looking for. An Embedded d'base as opposed to a database server (if I have that right).

Basically I'm trying to understand enough so that if I'm going to begin something like that I know what pieces are involved and then I have something to work towards. I firmly believe the best way to learn is hands on, though everybody knows that one.

Thanks for the replies. If anyone wants to add something which connects this all together, feel free to add something to this post.

Cheers
Danny2000

You can try build web based database application with http://buildadatabaseapp.com

Thanks for that. I was just thinking about this.
Will still pursue a desktop C++ database application though. I intend to use SQLite as my RDBMS and maybe Visual C++ or WxWidgets to build the app (gui). Can anyone think of anything wrong with that?

I know access and all those RAD tools are perfect for this kind of thing but I'm learning allot by looking into this an want to benefit from using a fully fledged programming language.

Thanks.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.