The MDB Tools FAQ (Frequently Asked Questions)

# The MDB Tools FAQ

1. General Questions
  1.1 What is an MDB
  1.2 What does MDB Tools do
  1.3 What are the tools in MDB Tools
  1.4 What license is MDB Tools under
  1.5 What Jet Databases does MDB Tools support?
  1.6 Is there a road map
  1.7 How do I install
  1.8 I've found a bug
  1.9 How do I help?
  1.10 What's this postcard thing?
  1.11 When will MDB Tools support writing?

## General Questions

1.1 What is an MDB
  MDB databases are files produced by the Microsoft 'Jet' database engine. They are used in a variety of Microsoft products such as Money, Project, IIS, and Exchange as well as Accpac's Simply Accounting and Fog Creek's CityDesk, but most importantly, it is used as the format for Microsoft Access databases.

1.2 What does MDB Tools do
  MDB Tools is an open source suite of libraries and utilities to read (and soon write) MDB database files.

1.3 What are the tools in MDB Tools
  MDB Tools includes
  - LibMDB, a library for accessing MDB files.
  - MDB Utilities, a set of command line utilities to extract schema and data.
  - MDBSQL, a SQL engine layered on top of LibMDB.
  - MDB ODBC driver, a ODBC driver - requires unixODBC driver manager.
  - gmdb2, a graphical interface including SQL query tool and file debugger.

1.4 What license is MDB Tools under
  The libraries in MDB Tools (libmdb, libmdbsql, and libmdbodbc) are licensed under the LGPL. The remainder of the software is license under the GPL.

1.5 What Jet Databases does MDB Tools support?
  MDB Tools supports Jet version 3.0 and 4.0 databases. It does not, and probably never will support Jet 2.0. I'm looking into adding support for MSDE databases, and if anyone wants to send some sample databases in that format, I'd be very interested.

1.6 Is there a roadmap?

  Roughly, the plan moving forward looks like this.

  - Add index scan capability to libmdb and the SQL engine with a query plan generator.
  - Add support for adding rows to existing tables and an mdb-import tool.
  - Add full write support to libmdb and libmdbsql.
  - Extract queries, table properties, VBA script, forms.
  - mdb-check database consistency checker and recovery tool.
  - Add joins.
  - Ability to add tables.

  Of course these are my personal goals, and the direction of the project depends on contributors and feature requests from users.

1.7 How do I install

  Consult the installation guide for details.

1.8 I've found a bug

  Post it to the sourceforge project page so it gets tracked and send a note to the list so we can work it out. I may request details about or a copy of your database. Any database sent will be kept confidential.

1.9 How do I help?

  Join the mailing list, it's very low traffic at the time of this writing.

  If you are a programmer, start with the debugger in gmdb2 to get a feel for the database layout. Read the HACKING file included in the distribution.

  We are currently looking for corrupted Access databases to help with developing recovery tools. If you have them, I will even extract the usable data from them for you for free. ;-)

1.10 What's this postcard thing?
  I, like many free software others, enjoy getting postcards from where users live. If you're a happy MDB Tools user (or even a disgruntled one, doesn't really matter) and want to drop me a postcard with a picture of the place you live, email me for my snail-mail address. Come on, you know you want to!

1.11 When will MDB Tools support writing?
  Writing to MDB files is a quite a bit more complicated than simply reading. Some preliminary support is available in the CVS version, this includes under-the-covers things like building rows, adding rows to tables, tracing the index chain to the row, and some work on index writes. These are the nuts and bolts of write support; the big thing left is the allocation of new pages and splitting full pages on inserts. When will this be done? I don't commit to timelines, but the next release (0.7) will have some usable, though not complete, write support.