I'm developing an app which will be used by a small team of workers (up to 15) and it stores data in Access accdb files. I don't have any problem when I'm testing out the app just by myself on one machine but when there's at least two people connecting to the db from time to time the app gives strange errors to the users. The database is stored in a shared folder on the network and each user's app accesses that folder to open the db file. Each of the users has their own system account on the db's machine and each function in the code locks access to the db from other threads so there's always only one connection opening attempt at a time. Each connection is closed in the same function. All db functions are written in one singleton class.
The errors I get:
System.Data.OleDb.OleDbException (0x80004005): Could not use 'D:\Shared\nscm\nscm_db.accdb'; file already in use.
System.Data.OleDb.OleDbException (0x80004005): Cannot open database ''. It may not be a database that your application recognizes, or the file may be corrupt.
System.Data.OleDb.OleDbException (0x80004005): Too many active users. **(this error even when there's only two users!)**
This is driving me crazy. Is it a problem with the JET4/ACE engines that they don't support multiuser access properly?
I'm thinking about changing the databse to something different like MS SQL Server Express or MySQL but I don't know which one would be easiest to migrate to and which ones are really free.
Thanks in advance for your help and attention!
UPDATE: Data convertion is not a problem for me. The app is still in development so there is no real data. I am more worried about the changes in the code and SQL queries. And I'm not sure if I won't encounter other problems after switching to the other db technology.
My real question is: should I keep striving for correcting something in the present technology, I'm using or is there a known problem with the Access db engines and it's worthless to waste my time on this it would be simplier and faster to start using some sort of a db server (MySQL)?