First, I am not sure if this is the right group to post this question. If it is not, then, please could anyone tell which would be better?
I need some help on choosing the right database for a Windows Delphi (2005) application, since I don't know anything about them (databases).
I am developing an application to control an external hardware (outside PC) thru serial port (client requested such procedure), which will be used on the assembly line of a factory. The point here is: Only one person will use the application at a time (no network) and no computers skills are required from the operator (I mean NO skills), last, the access to the PC will be limited to a very few people (the operator of the machine might be one of them). So, what I need is a very reliable database application, which doesn't require someone fixing it from time to time.
I have been using Paradox with BDE and yesterday had a strange problem. Each time I ran the application, Tables woundn't open after they were open and closed before. After rebooting the machine, the problem was totally gone. another problem I had was with the lock files, which sometimes make me unable to use the tables (until I delete them).
Searching on the net, I found that Microsoft Access isnt't a good solution too (never tried personally), due to some errors people stated with it.
Now, there is SQL too. I know NOTHING about it (but I could learn). Would it be a good solution? I think if it is too heavy would not be a big problem, since coumputer will be dedicated to the application.
Well, I would like to know which is the most relieble database (and database engine) that would fit into my application, please.
Not sure why MS Access is not suitable for your app. Sounds like a resonable fit as long as the data volume is not too high.
You may want to look at: dbISAM:http://www.elevatesoft.com/prodinfo.htm
Advantages: Engine compiles into your exe. Good for stand alone aps.
Disadvantages: Some strange syntax in coding. Not exactly standard SQL support.
Interbase / Firebird: Interbase is/was Borland's answer to MSSQL, there is now a open source version called Firebird http://firebird.sourceforge.net/
Advantages: Free, industrial Strength,faily easy to install/manage
Disadvantages: may be overkill for your needs. Does require dba skills to install and backup.
ADO: This is Microsofts latest "ODBC" so it is not really a database, it's a database connector like the BDE. This is a standard component in your Delphi Components.
Advantages: Makes your application portable and scalable across databases.
Disadvantages: you cannot exploit database specific functionality, performance can be slower than native connections.
For small footprint and transparency: dbISAM
For industrial Strength at low cost: Firebird
For Portablility and Scalability ADO.
Personally I would look at writing ADO because you can then choose your target database at will. Much like the BDE it is a resonable solution. You can write ADO, try msAcess if that does not do the trick, then plug in ms SQL or another DBM. There should be no need to recode your app.
No, MS Access (Office) is not required in order to have a functional MS Access Database on a windows PC. MS Access uses MS Jet Engine which is standard in XP and downloadable / installable in older windows versions.