Application programming with an embedded database?
Moderator: TheMachine
- Xouqoa
- Way too much time!

- Posts: 4106
- Joined: July 2, 2002, 5:49 pm
- Gender: Mangina
- XBL Gamertag: Xouqoa
- Location: Dallas, TX
- Contact:
Application programming with an embedded database?
Let's say I wanted to figure out how to create an application (either VB or C++) for windows with some sort of embedded database.
Does anybody have any recommendations for places/books to read up on this?
I know how to program, and I know databases, but not this sort of stuff. My knowledge is all web based so I just need some sort of started tutorial. Thanks!
Does anybody have any recommendations for places/books to read up on this?
I know how to program, and I know databases, but not this sort of stuff. My knowledge is all web based so I just need some sort of started tutorial. Thanks!
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
- Dregor Thule
- Super Poster!

- Posts: 5994
- Joined: July 3, 2002, 8:59 pm
- Gender: Male
- XBL Gamertag: Xathlak
- PSN ID: dregor77
- Location: Oakville, Ontario
Re: Application programming with an embedded database?
WTF? You want to re-create MS Access?Xouqoa wrote:Let's say I wanted to figure out how to create an application (either VB or C++) for windows with some sort of embedded database.
Does anybody have any recommendations for places/books to read up on this?
I know how to program, and I know databases, but not this sort of stuff. My knowledge is all web based so I just need some sort of started tutorial. Thanks!
You'd probably be a lot better off running a real backend unless your data storage needs are so modest you could get away with a flat file.
May 2003 - "Mission Accomplished"
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
- Xouqoa
- Way too much time!

- Posts: 4106
- Joined: July 2, 2002, 5:49 pm
- Gender: Mangina
- XBL Gamertag: Xouqoa
- Location: Dallas, TX
- Contact:
Maybe embedded isn't an accurate description.
I need something that (when I am finished) the customer can install the application (via setup.exe or whatever) and then the application will be able to store data on their machine without them having to install a web server or anything like that.
I don't even know of any database packages that do that.
<-- noob
I need something that (when I am finished) the customer can install the application (via setup.exe or whatever) and then the application will be able to store data on their machine without them having to install a web server or anything like that.
I don't even know of any database packages that do that.
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
Pretty much means writing your own database.. which is why I said people never do this unless you can get by w/ a flat file.
The usual method if you have some real data storage requirements is to use a third party DB API to do the work; Access is a fairly safe bet if you're writing for corporate, MySQL is better if you want a real DB and/or lower entry cost with installation/support work (good opportunity for trail income ..) It's not impossible for you to bundle MySQL w/ your application either... but you have to either GPL your software, or pay for a licence.
If you support more than one API you can leave it to the client as to what DB they want to licence..
The usual method if you have some real data storage requirements is to use a third party DB API to do the work; Access is a fairly safe bet if you're writing for corporate, MySQL is better if you want a real DB and/or lower entry cost with installation/support work (good opportunity for trail income ..) It's not impossible for you to bundle MySQL w/ your application either... but you have to either GPL your software, or pay for a licence.
If you support more than one API you can leave it to the client as to what DB they want to licence..
May 2003 - "Mission Accomplished"
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
- Canelek
- Super Poster!

- Posts: 9380
- Joined: July 3, 2002, 1:23 pm
- Gender: Male
- XBL Gamertag: Canelek
- Location: Portland, OR
Also keep in mind that MS Access is no true RDBMS--it is more of a file, much like Excel, that become corrupted. The MS Jet engine is utter garbage--just ask anyone who has ever tried to fix a bad Exchange database.
If I had no funds for SQL Server, I would definately go unix/MySQL. PERL is an easy language to learn and MySQL is pretty much ANSI SQL.
If I had no funds for SQL Server, I would definately go unix/MySQL. PERL is an easy language to learn and MySQL is pretty much ANSI SQL.
en kærlighed småkager
- Xouqoa
- Way too much time!

- Posts: 4106
- Joined: July 2, 2002, 5:49 pm
- Gender: Mangina
- XBL Gamertag: Xouqoa
- Location: Dallas, TX
- Contact:
Not sure on the scope, it's just an idea I have at the moment! Probably a few simultaneous users via network/server configuration eventually. It'll be a POS type application, which is why I need to be able to store the infoz.
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
Agreed, Access is rubbish, and when I said 'corporate' I meant 'desktops that are likely to have access by default'. =)Canelek wrote:Also keep in mind that MS Access is no true RDBMS--it is more of a file, much like Excel, that become corrupted. The MS Jet engine is utter garbage--just ask anyone who has ever tried to fix a bad Exchange database.
If I had no funds for SQL Server, I would definately go unix/MySQL. PERL is an easy language to learn and MySQL is pretty much ANSI SQL.
If it's multiuser at all then it's not a big ask to install a DB server on a dedicated/single machine; every time I've seen an application that attempts to do some adhoc database serving from a share, it ends up being prone to corruption and generally perform poorly (RoomMaster comes to mind..)
You could also just stick to what you know and do the whole interface in HTML... backend MySQL and Java/Perl/whatever.
May 2003 - "Mission Accomplished"
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
June 2005 - "The mission isn't easy, and it will not be accomplished overnight"
-- G W Bush, freelance writer for The Daily Show.
- Canelek
- Super Poster!

- Posts: 9380
- Joined: July 3, 2002, 1:23 pm
- Gender: Male
- XBL Gamertag: Canelek
- Location: Portland, OR
kkXouqoa wrote:Not sure on the scope, it's just an idea I have at the moment! Probably a few simultaneous users via network/server configuration eventually. It'll be a POS type application, which is why I need to be able to store the infoz.
If you do want a Windows-based app, and want a language preferance, I would suggest C# over VB in a heartbeat. While VB/VB.NET may be easier on the eyes, it is weaksauce compared to C#.
en kærlighed småkager
Here's an excellent MySQL reference, including programming APIs
http://www.oreilly.com/catalog/msql2/
What OS are you coding the front end for? I ask because I've been looking for a Linux based POS system that uses a 2-tier MySQL database and haven't found one that meets my needs. I hate the thought of buying the Microsoft Point of Sale application and all the OS and SQL Server licenses that go along with it.
http://www.oreilly.com/catalog/msql2/
What OS are you coding the front end for? I ask because I've been looking for a Linux based POS system that uses a 2-tier MySQL database and haven't found one that meets my needs. I hate the thought of buying the Microsoft Point of Sale application and all the OS and SQL Server licenses that go along with it.
- Xouqoa
- Way too much time!

- Posts: 4106
- Joined: July 2, 2002, 5:49 pm
- Gender: Mangina
- XBL Gamertag: Xouqoa
- Location: Dallas, TX
- Contact:
I guess if I have to actually install a database server/application outside of the application itself I might as well just do it in either flash or coldfusion. *shrug* 
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
- Animalor
- Super Poster!

- Posts: 5902
- Joined: July 8, 2002, 12:03 pm
- Gender: Male
- XBL Gamertag: Anirask
- PSN ID: Anirask
- Location: Canada
Take a look at MSDE.
http://www.microsoft.com/sql/msde/default.mspx
http://www.microsoft.com/sql/msde/default.mspx
Might be overkill for what you want to use however it's a LOT better than using a MDB file.Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) is the free, redistributable version of SQL Server that’s ideal for client applications that require an embedded database, new developers learning how to build data-driven applications, and Web sites serving up to 25 concurrent users.
- Aabidano
- Way too much time!

- Posts: 4861
- Joined: July 19, 2002, 2:23 pm
- Gender: Male
- Location: Florida
Clipper FTW!
Might want to look at Cloudscape as well, IBM took it open source a year or two ago. It's a nice database, we use it in a couple products with a java front end.
It worls well enough, kind of bloated though. Imagine that.Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)
Might want to look at Cloudscape as well, IBM took it open source a year or two ago. It's a nice database, we use it in a couple products with a java front end.
"Life is what happens while you're making plans for later."
- XunilTlatoani
- Star Farmer

- Posts: 379
- Joined: September 6, 2002, 2:37 pm
- Location: Lakemoor, IL
If you're looking for an embedded database to deploy on a client machine, definitely take a look at cloudscape. It's perfect for those types of applications (MySQL is more of a server side product...and their license is confusing for commerical products), and like Aabidano said, it is now in the open source world. I believe you can still find it on the IBM site, but you might also find it at the Apache site under the Derby project.
The only drawback for you, since you are looking at a C or VB solution, is that Cloudscape runs on Java. So, ideally it should be embedded in a Java app, but you should be able to get it to work in your VB/C app.
The only drawback for you, since you are looking at a C or VB solution, is that Cloudscape runs on Java. So, ideally it should be embedded in a Java app, but you should be able to get it to work in your VB/C app.
Xunil Tlatoani - Gnome Arch Lich (Retired)
Keepers of the Elements
Tlatoani - Gnome Warlock
Light of Dawn (Lightbringer Server)
Keepers of the Elements
Tlatoani - Gnome Warlock
Light of Dawn (Lightbringer Server)
Besides MSDE, look into SQL Express. New desktop version of MS SQL Server 2005. Some cool new abilities, but also more restrictive in some ways, but not enough to be an issue for a single user system.
Both of these can be installed with the install of the application. Be aware that company IT department hate both of them, mostly due to the problem of patching since you do not know where and who has them installed. *flashbacks from slammer*
Both of these can be installed with the install of the application. Be aware that company IT department hate both of them, mostly due to the problem of patching since you do not know where and who has them installed. *flashbacks from slammer*
Ardel i'Fallegar, Wizard long dead
Fyndina i'Fallegar, L60 necro, Veeshan
Aateni i'Fallegar, L65 SK, Veeshan
Korte i'Fallegar, L43 Illusionist, Lucan
Gun Carrying Liberal
Fyndina i'Fallegar, L60 necro, Veeshan
Aateni i'Fallegar, L65 SK, Veeshan
Korte i'Fallegar, L43 Illusionist, Lucan
Gun Carrying Liberal

