Application programming with an embedded database?

No holds barred discussion. Someone train you and steal your rare spawn? Let everyone know all about it! (Not for the faint of heart!)

Moderator: TheMachine

Post Reply
User avatar
Xouqoa
Way too much time!
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?

Post by Xouqoa »

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!
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
User avatar
Dregor Thule
Super Poster!
Super Poster!
Posts: 5994
Joined: July 3, 2002, 8:59 pm
Gender: Male
XBL Gamertag: Xathlak
PSN ID: dregor77
Location: Oakville, Ontario

Post by Dregor Thule »

Ted Nugent
Image
User avatar
Zaelath
Way too much time!
Way too much time!
Posts: 4621
Joined: April 11, 2003, 5:53 am
Location: Canberra

Re: Application programming with an embedded database?

Post by Zaelath »

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!
WTF? You want to re-create MS Access?

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.
User avatar
Xouqoa
Way too much time!
Way too much time!
Posts: 4106
Joined: July 2, 2002, 5:49 pm
Gender: Mangina
XBL Gamertag: Xouqoa
Location: Dallas, TX
Contact:

Post by Xouqoa »

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
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
User avatar
Zaelath
Way too much time!
Way too much time!
Posts: 4621
Joined: April 11, 2003, 5:53 am
Location: Canberra

Post by Zaelath »

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..
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.
User avatar
Canelek
Super Poster!
Super Poster!
Posts: 9380
Joined: July 3, 2002, 1:23 pm
Gender: Male
XBL Gamertag: Canelek
Location: Portland, OR

Post by Canelek »

On a corporate level, Visual Studio, MSSQL Server and install scripts w/WISE or InstallShield is pretty common for your standard n-tier type of thing. As for a smaller level, I am not too familiar, unfortunately. What is your scope?
en kærlighed småkager
User avatar
Canelek
Super Poster!
Super Poster!
Posts: 9380
Joined: July 3, 2002, 1:23 pm
Gender: Male
XBL Gamertag: Canelek
Location: Portland, OR

Post by Canelek »

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.
en kærlighed småkager
User avatar
Xouqoa
Way too much time!
Way too much time!
Posts: 4106
Joined: July 2, 2002, 5:49 pm
Gender: Mangina
XBL Gamertag: Xouqoa
Location: Dallas, TX
Contact:

Post by Xouqoa »

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
User avatar
Zaelath
Way too much time!
Way too much time!
Posts: 4621
Joined: April 11, 2003, 5:53 am
Location: Canberra

Post by Zaelath »

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.
Agreed, Access is rubbish, and when I said 'corporate' I meant 'desktops that are likely to have access by default'. =)

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.
User avatar
Canelek
Super Poster!
Super Poster!
Posts: 9380
Joined: July 3, 2002, 1:23 pm
Gender: Male
XBL Gamertag: Canelek
Location: Portland, OR

Post by Canelek »

Xouqoa 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.
kk

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#. :D I am no developer--just a prod DBA--but I do work closely with app/dev peoples.
en kærlighed småkager
User avatar
Tenuvil
Way too much time!
Way too much time!
Posts: 1841
Joined: July 11, 2002, 6:13 pm

Post by Tenuvil »

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.
User avatar
Xouqoa
Way too much time!
Way too much time!
Posts: 4106
Joined: July 2, 2002, 5:49 pm
Gender: Mangina
XBL Gamertag: Xouqoa
Location: Dallas, TX
Contact:

Post by Xouqoa »

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
User avatar
Canelek
Super Poster!
Super Poster!
Posts: 9380
Joined: July 3, 2002, 1:23 pm
Gender: Male
XBL Gamertag: Canelek
Location: Portland, OR

Post by Canelek »

Barebones n-tier....

Web interface/GUI - Business Logic - Database backbone
en kærlighed småkager
User avatar
Tenuvil
Way too much time!
Way too much time!
Posts: 1841
Joined: July 11, 2002, 6:13 pm

Post by Tenuvil »

Canelek wrote:Barebones n-tier....

Web interface/GUI - Business Logic - Database backbone
back in the dark ages we called that "middleware" :D Imagine a UI based on LOTUS 123 for DOS, with a business rules tier in FOCUS 4GL and a back end database running on IBM MVS DB2.
User avatar
Animalor
Super Poster!
Super Poster!
Posts: 5902
Joined: July 8, 2002, 12:03 pm
Gender: Male
XBL Gamertag: Anirask
PSN ID: Anirask
Location: Canada

Post by Animalor »

Take a look at MSDE.

http://www.microsoft.com/sql/msde/default.mspx
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.
Might be overkill for what you want to use however it's a LOT better than using a MDB file.
User avatar
Aabidano
Way too much time!
Way too much time!
Posts: 4861
Joined: July 19, 2002, 2:23 pm
Gender: Male
Location: Florida

Post by Aabidano »

Clipper FTW!
Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)
It worls well enough, kind of bloated though. Imagine that.

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."
User avatar
XunilTlatoani
Star Farmer
Star Farmer
Posts: 379
Joined: September 6, 2002, 2:37 pm
Location: Lakemoor, IL

Post by XunilTlatoani »

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.
Xunil Tlatoani - Gnome Arch Lich (Retired)
Keepers of the Elements

Tlatoani - Gnome Warlock
Light of Dawn (Lightbringer Server)
User avatar
Aabidano
Way too much time!
Way too much time!
Posts: 4861
Joined: July 19, 2002, 2:23 pm
Gender: Male
Location: Florida

Post by Aabidano »

Nice thing about it for us is the ease in supporting multiple platforms. We run essentially the same code on Solaris, Windows and Linux. Depending on customer preference and scale of operation.
"Life is what happens while you're making plans for later."
User avatar
Xouqoa
Way too much time!
Way too much time!
Posts: 4106
Joined: July 2, 2002, 5:49 pm
Gender: Mangina
XBL Gamertag: Xouqoa
Location: Dallas, TX
Contact:

Post by Xouqoa »

Thanks for all the info, guys. :)
"Our problems are man-made, therefore they may be solved by man. No problem of human destiny is beyond human beings." - John F Kennedy
User avatar
Seebs
Way too much time!
Way too much time!
Posts: 1158
Joined: June 5, 2003, 3:00 pm
Gender: Male

Post by Seebs »

Can't you have your Admin do it? :roll:
Seeber
looking for a WOW server
Fyndina
Gets Around
Gets Around
Posts: 73
Joined: July 7, 2002, 9:17 pm
Location: DFW

Post by Fyndina »

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*
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
Nindalf
No Stars!
Posts: 14
Joined: August 25, 2002, 9:37 pm

Post by Nindalf »

May want to check out Filemaker too depending on what you want to do exactly.
Nindalf
Wizard 60
Post Reply