0

I recently was introduced to a program for maintaining "matters" for solicitors that used an MDB file as the back end. I found this surprising and even more surprising was the fact that the program could be used without a copy of Access installed on the machine (the program is 15 years old BTW).

It then got me to wondering. Can ACCDB files be used as back ends for deployed applications and following on from that, what would be the best front ends?

The point being here is that if someone were to create an application similar to the one above (not going to need even 1GB worth of storage space), create an installer package and distribute via CD or DVD what would be the best options for front and back ends?

I had to write (for university) a java program that used plain text files as the storage medium. Are text files commonly used? Or is there a standard deployed back end that I don't know about?

And as for front ends, surely one of the most pertinent points is what engine could be deployed with the application to run the front end bearing in mind this whole thing would need to be distributed together.

Chris Laplante
  • 29,338
  • 17
  • 103
  • 134
James Satori-Brunet
  • 901
  • 2
  • 13
  • 28
  • 1
    Yes, they can. The engine is free and the run time is free. You can use whatever you fancy. Here on SO, you will find java, vb,net and c#, amongst others. – Fionnuala Mar 13 '13 at 16:35
  • IMHO the runtime would be too big a program to distribute as part of the application. And is it necessary if the ACCDB file is just a back end file? – James Satori-Brunet Mar 13 '13 at 16:44
  • No it is not, the note is additional information. – Fionnuala Mar 13 '13 at 16:44
  • But is it common to use an ACCDB file as a back end for a deployed application? Or is there another more popular and better light weight back end out there? – James Satori-Brunet Mar 13 '13 at 17:01
  • 1
    And there you have it. This question will provoke too much debate, so it is unsuitable for SO. Yes it is common, yes there are other options. Are they better? That is a question of religion. – Fionnuala Mar 13 '13 at 17:04
  • I don't agree with you at all. This is perfectly good question. Are what better? You haven't offered any alternatives to the ACCDB file. If I could get a couple it would give me something to go on. – James Satori-Brunet Mar 13 '13 at 17:13
  • Which technology type questions are not a good fit for Stackoverflow, you might like to check out http://stackoverflow.com/faq and http://meta.stackexchange.com/questions/116821/deciding-which-technology-to-use-questions – Fionnuala Mar 13 '13 at 17:30
  • 1
    There are two parts to your question: (1) "***Can*** ACCDB files be used as back ends for deployed applications?": Yes, they can; see the answer from MarkJ below. (2) "***Should*** ACCDB files be used as back ends for deployed applications?": That depends, and is too open-ended for the Stack Overflow Q+A format as @Remou pointed out. – Gord Thompson Mar 13 '13 at 18:38

2 Answers2

1

It was very common to use MDB files as the backing store for desktop programs. That's Microsoft decided to include the relevant runtime files (the "Jet database engine") into Windows, under the name "Windows Data Access Components". It is still present in Windows 8, although it is "functionally deprecated" which AFAIK means it will be maintained, but no new features will be added.

Microsoft recommendations:

Use Microsoft SQL Server Express Edition or Microsoft SQL Server Compact Edition when developing new, non-Microsoft Access applications requiring a relational data store...

Applications can continue to use Jet with the intention of using Microsoft Office 2003 and earlier files (.mdb and .xls) for non-primary data storage. However, for these applications, you should plan to migrate from Jet to the 2007 Office System Driver. You can download the 2007 Office System Driver, which allows you to read from and write to pre-existing files in either Office 2003 (.mdb and .xls) or the Office 2007 (*.accdb, *.xlsm, *.xlsx and *.xlsb) file formats.

Important disclaimer: there are very many ways of storing data: other relational database engines, "no SQL" databases, object serialisation etc. etc. It's meaningless to make any general statement about which is "better" without knowing about a specific project and the specific skills of the specific developers working on it.

MarkJ
  • 30,070
  • 5
  • 68
  • 111
  • But aren't SQL Server Express and compact too big to package? – James Satori-Brunet Mar 13 '13 at 17:16
  • I would not suggest SQL Server in any version for lightweight, hm? Where is SQLite, amongst others? The question is a shopping list http://meta.stackexchange.com/questions/158809/why-are-shopping-list-questions-bad – Fionnuala Mar 13 '13 at 17:45
  • 1
    +1 for answering the central question "***Can*** ACCDB files be used as back ends for deployed applications", and for noting that the "2007 Office System Driver" is an additional component that must be installed. Jet (for .mdb files) is included in the base Windows install, but ACE (for .accdb files) is not. – Gord Thompson Mar 13 '13 at 18:31
  • @remou I deliberately didn't answer the "shopping list" question, see last paragraph of my answer. – MarkJ Mar 13 '13 at 21:29
  • Who knew that asking whether there was a better alternative to ACCDB files could be so taxing? – James Satori-Brunet Mar 14 '13 at 09:48
-4

I definitely do not recommend using ACCDB as backend. ACCDB as well as MDB files tend to crash without warning; e.g. when network connections break down or the client machine crashes. You then need to repair the database backend file probably suffering data loss.

I would rather recommend using a SQL Server database for this. For me MySQL often did the trick; it can also easily be backed up and is quite safe to use. MS SQL Server Express or compact (as mentioned above) are also very good choices.

RJ Moeller
  • 489
  • 4
  • 4
  • This is simply not true. Anything that is not set up correctly will break. You will note that in the question the OP mentions an mdb in use for 15 years. – Fionnuala Mar 13 '13 at 17:39
  • Well, I can only speak for what I encountered. And I have spent a lot of time repairing crashed mdb files (cannot be opened, needs to be repaired) that were used as backends. – RJ Moeller Mar 13 '13 at 17:46
  • 1
    As I said, anything used improperly will break. My experience over a great many years is the Access works very well for the small office. – Fionnuala Mar 13 '13 at 17:48