I asked a question a while ago about which local DB was right for my situation. I needed to access the DB from both .NET code and VB6. The overwhelming response was SQLite. However, I decided to pass on SQLite, because the only OLE DB provider for it charges royalties for every deployed copy of my software. It also requires an activation procedure to be run on every single PC.
After evaluating other options (SQL Server Compact edition – barely functional OLE DB provider, Firebird – don’t want to have to pay for another driver, etc…), I’ve come to conclusion that the only viable choice is using .MDB files created by Microsoft Access (or the Jet engine).
I haven’t used it since late 90s, so I have the following questions to those who have experience with it.
- Have they resolved the problem where the database would corrupt every now and then.
- Is access to the MDB from c# accomplished via the ADO.NET OLEDB Provider or is there a native solution (i can’t seem to find it).
- Is there a viable alternative to the really crappy SQL Editor in Access?
Thanks.
Rather then going “back” to Access, I’d stick with SQLite and use the System.Data.SQLite provider for SQLite data access within the .NET code.
Then I’d just create a simple COM interop .NET class for use by VB6 that wraps any required SQLite data access functionality. Finally, just reference and use it like a standard COM object from your VB6 projects.
My knowledge of Access is probably a bit dated and biased by bad experiences, but within reason I would try most other options before resorting to the Access route.