What's the SIMPLEST database application method?

This is a bit of a long question; I hope I can find a patient expert! But I want to make my problem as clear as possible ...
I am writing a simple database application in Delphi, running on a Microsoft Access database. The handling of data and the front face design are going wonderfully, and those tasks are well within my capabilities; what I have trouble with is setting up the various technical connections needed to make the things work in the first place.

My initial question on this app (about unwanted Login prompts) showed I wasn't really aware of how the blessed components connected in the first place:


... and now since having that question answered, I have happily written most of the app. But now when I release it to a few beta-test people they get a message saying "An error occured while attempting to initialze the Borland Database Engine (error$2108)". I was unaware I was actually USING the BDE (my ignorance of this kind of technical understructure would fill books) and given some of the problems I understand it causes, I would rather NOT use the BDE.

However I have written the entire app based around a TDatabase, and a TQuery ... only it turns out the TQuery is descended from TBDEDataset, which drags the whole BDE thing in. I am only using SQL access to the database anyway.

My question is basically: is there a simple database handling system in Delphi where I can just drop something on the screen and have a Query run SQL through it? I neither want nor need to get into all this technical stuff about BDE and ODBC ... it just seems to me that someone at some stage must have thought "hey, why don't we just write a MicrosoftAccessDataHandlerObject and be done with it?" ... does such a thing exist? If not, what alternatives are there? What is the SIMPLEST way of handling a database in an application?

Parameters: the app has a database onboard but it does NOT connect to the web, nor is it even networked beyond being accessible from different computers (that is, only one computer can be signed in to it at any one time) ... I am using Delphi 7 ... I have Access 2002 ... now that I have written so much, the solution MUST tie in to an object similar to a TQuery (i.e. one that has an SQL property that I can fill and then execute it).

Given that there could be varying points of view on this one, I have allotted a reasonable amount of points so I can subdivide if necessary. I'll close it in 80-odd hours.

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.

Try TxQuery


Topaz is also good  from www.softsci.com but it uses DBase tables.

Neither require the BDE.

Use all the ADO components instead... TADOQuery, TADOConnection, etc. That way, you will be 'free' from BDE.

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
Wim ten BrinkSelf-employed developerCommented:

  Write('ADO! ');
until Forever;

DragonSlayer is just right! If you want to keep it simple, just use ADO. It works perfectly with the MS databases like Access and SQL Server and lots of other databases do support ADO too these days.

The simplest way of handling a database in Delphi is a very easy one. Use a "File of RecordType" to store your data in. This has worked for about 20 to 30 years without much problems. The only drawback is that you yourself have to write all the code to search, modify, delete and insert records. But hey, because you need to do so much work to get it working, it is very impopular these days.

Ever since Borland created the TDataset as base class for all tables and queries, there have been a lot of people who created their own TDataset-based component set. And in site that I lost a long time ago again I even saw how it would be possible to create your own TDataset component arround your own "File of recordtype" file. Pretty neat. At the moment I use something called FlashFiler, but this is because this database is set up to be client/server based. For personal use I prefer to stich to ADO, combined with SQL Server or Access.

There are just too many different options here and everyone has his or her own favorite. But if you continue to use Access for data storage, ADO is just the ideal solution. So blame Dragonslayer for providing the right answer. ;-)
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

*ouch* I got blamed again... :-p
Wim ten BrinkSelf-employed developerCommented:
Of course I blame you. You're more than 50.000 points ahead of me in the top-15... :-P
But I'm gaining on you... :-)
MartinCAuthor Commented:
OK, I am using TADOQuery and TADOConnection and to my astonishment it appears to be working! So when I compile this thing into an exe can I just send out the exe and the database and it'll work?
> You're more than 50.000 points ahead of me
But hey, I've been slacking this year, and look, you are 47k points ahead of me in this year's results :-p

Yea, Windows machine come with the drivers ready for Microsoft stuff (access, vb runtimes, c++ runtimes)... no wonder they can keep dominating, lol ;-)
MartinCAuthor Commented:
OK, I am gonna close this one off now, as the ADO stuff seems to be working.

Paul: thx re TxQuery. I checked it out and it looked OK but I'll only use a third-party component if I can't find an onboard one to do the job. 20 points.

Alex: Thanks for the background on ADO. 40 points.

DragonSlayer: Great solution. 180 points.

And as for Microsoft dominating, funny, their share price plummeted 9% overnight ... someone knows someone we don't!

Wim ten BrinkSelf-employed developerCommented:
> But hey, I've been slacking this year, and look, you are 47k points ahead of me in this year's results
Yep. I'm halfway there already... Still need over 50k more. You might have been slacking this year but I've been slacking the years before...
Still, it's nice to be 4th this year... But I sometimes wonder how others seem to have enough time to answer all Q's. I need to avoid real work to put answers here. :-)
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

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.