Stand alone, local database

Started by
3 comments, last by Poetickle 14 years ago
Some noob questions here. I'm a fifty year old who hasn't done much programming in a long time. I'm building what I think would be termed a stand alone, local database, single user application using MS Visual Basic. My questions concern the database work involved, which I have very little experience with. This application will have a database bundled with it that will have possibly a hundred thousand records by the time I'm done. Each record will have up to 100 pieces of data (called fields?) I will have most of the data in MS Access format. Most of the database queries will be quite basic. I'm about half way through my Visual Basic book (by Murach) and haven't gotten to the database stuff yet, but I'd like feedback from you guys in case I should be spending some time learning other things. So far the VB stuff is pretty clear to me. I probably won't be coding any database stuff for a few months yet. My questions are: Is Visual Basic by itself sufficient to handle that kind of data load, or will it be too slow? Will LINQ be helpful? Should I use SQL Server for the database work, or Access, or . . . , bearing in mind that I'll need to be able to bundle the db stuff into the app for use on stand alone machines by single users? As you can see, I'm pretty ignorant of db stuff ;) I plan to buy either VS 2008 or 2010 Professional. Is there a downside to getting 2010? Thanks in advance for any help.
Advertisement
If you would post this question before you started reading that Visual Basic book, I'd suggest you C# instead :).

Once I was in a situation when I needed to create a small database for a library. At that time I thought - what would be the fastest way to design the database and the data processing forms? I chose MS Access and Visual Basic. After I had finished the project, I felt exhausted and unsatisfied with the result. It was a real pain to get everything working right in Visual Basic in MS Access environment, there were lots of small things that slowed me down, so I spent most of time coding some trivial tasks to bypass the default behavior of Access and I could not concentrate on the "business logic" of my application. I confess, I am not a good Visual Basic coder. Who knows, if I had chose Visual Basic in Visual Studio, then maybe everything would end much better for me.
But anyway, some years after that, I tried to redesign my application using Visual Studio and C#, and I was surprised, how clean and easy everything worked out.

For now, I am not sure if you should spend money on VS Professional, there are also free editions which could do some simple applications just fine:

http://www.microsoft.com/express/Downloads/#2008-Visual-Basic

(also, if you are a beginner, then I suggest to not buy/download VS 2010 yet - you will get more help for 2008 edition if you get stuck).

For a database, you could also use the free SQL Server Express edition. Of course, it has to be installed separately on the client machine, and you have to deploy your database on the server. The alternative is to use SQL Server Compact (more info here:
http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx
), you do not need to install it separately (although it is better if you do), you can distribute it with your application.

Only thing that bothers me is if SQL Server Compact can handle hundred thousand records. But I guess Access also is not a good choice for that many records.

Anyway, I am more C#/SQL fan so my point of view is biased, also because of my bad experience with VB/Access.
I've been using VB 2008 Express. The cost of VS Professional isn't a problem. I'll keep in mind the suggestion about 2008 vs 2010 though. Thanks. My main concern is having a finished product that isn't too slow. I've been considering working in C#, which I may well yet do. However, if VB can spit out an app that doesn't run too slow then I'll stick with VB. Thanks for the tip about SQL Server Compact. I'll look into that. The app itself will really be quite simple. I could probably code ninety percent of it right now. My only real concern is performance of the db operations because of the amount of data.
Depending on the type of app you are building you might want to look into Sqlite. It is public domain so there are no restrictions on redistribution. It is written in C but it has .Net bindings that should work from VB\C#.
Thanks, guys. You've given me some helpful info to research.

This topic is closed to new replies.

Advertisement