diff --git a/doc/mdb-ver.txt b/doc/mdb-ver.txt index 047eba8..9d3f0d2 100644 --- a/doc/mdb-ver.txt +++ b/doc/mdb-ver.txt @@ -8,14 +8,14 @@ SYNOPSIS DESCRIPTION mdb-ver is a utility program distributed with MDB Tools. - It will return a single line of output with either 'JET3' for those files produced in Access 97 format or 'JET4' for those produced by Access 2000 and XP. + It will return a single line of output with 'JET3' for those files produced in Access 97 format, 'JET4' for those produced by Access 2000, XP and 2003, 'ACE12' for those produced by Access 2007, or 'ACE14' for those produced by Access 2010. OPTIONS -M Prints the version of MDB Tools itself instead of the MDB file. NOTES - Access changed its format between Jet 3 used in Access 97 and Jet 4 used for Access 2000 and XP. The nature of the changes included moving the page size from 2K to 4K and added support for unicode. MDB Tools actively supports both formats. + Access changed its format between Jet 3 used in Access 97 and Jet 4 used for Access 2000 and XP. The nature of the changes included moving the page size from 2K to 4K and added support for unicode. MDB Tools actively supports both formats. Newer version are very much like Jet4. ENVIRONMENT MDB_JET3_CHARSET Defines the charset of the input JET3 (access 97) file. Default is CP1252. See iconv(1). @@ -44,4 +44,4 @@ AUTHORS BUGS mdb-ver does minimal checking on the validity of a file. It is possbile for it to misidentify a non-MDB file. - mdb-ver does not recognize Access 2.0 (Jet 2) or the newer MSDE format files. + mdb-ver does not recognize Access 2.0 (Jet 2). diff --git a/include/mdbtools.h b/include/mdbtools.h index b49d778..73bceba 100644 --- a/include/mdbtools.h +++ b/include/mdbtools.h @@ -59,7 +59,8 @@ enum { enum { MDB_VER_JET3 = 0, MDB_VER_JET4 = 1, - MDB_VER_JET5 = 2 + MDB_VER_ACCDB_2007 = 0x02, + MDB_VER_ACCDB_2010 = 0x0103 }; enum { MDB_FORM = 0, @@ -167,8 +168,7 @@ enum { }; #define MDB_SHEXP_DEFAULT (MDB_SHEXP_CST_NOTNULL | MDB_SHEXP_COMMENTS | MDB_SHEXP_INDEXES | MDB_SHEXP_RELATIONS) -#define IS_JET5(mdb) (mdb->f->jet_version==MDB_VER_JET5) -#define IS_JET4(mdb) (mdb->f->jet_version==MDB_VER_JET4) +#define IS_JET4(mdb) (mdb->f->jet_version==MDB_VER_JET4) /* obsolete */ #define IS_JET3(mdb) (mdb->f->jet_version==MDB_VER_JET3) /* forward declarations */ diff --git a/src/gmdb2/info.c b/src/gmdb2/info.c index ac62284..fff8115 100644 --- a/src/gmdb2/info.c +++ b/src/gmdb2/info.c @@ -60,8 +60,10 @@ char* version; version = "3 (Access 97)"; else if (mdb->f->jet_version == MDB_VER_JET4) version = "4 (Access 2000/XP/2003)"; - else if (mdb->f->jet_version == MDB_VER_JET5) - version = "5 (Access 2007)"; + else if (mdb->f->jet_version == MDB_VER_ACCDB_2007) + version = "ACE 12 (Access 2007)"; + else if (mdb->f->jet_version == MDB_VER_ACCDB_2010) + version = "ACE 14 (Access 2010)"; else version = "Unknown"; gtk_label_set_text(GTK_LABEL(label), version); diff --git a/src/gmdb2/main2.c b/src/gmdb2/main2.c index 33a4120..7ff3661 100644 --- a/src/gmdb2/main2.c +++ b/src/gmdb2/main2.c @@ -67,7 +67,7 @@ GdkPixbuf *pixbuf=NULL; "authors", authors, "comments", _("GNOME MDB Viewer is a grapical interface to " "MDB Tools. It lets you view and export data and schema " - "from MDB files produced by MS Access 97/2000/XP/2003/2007."), + "from MDB files produced by MS Access 97/2000/XP/2003/2007/2010."), "copyright", _("Copyright 2002-2012 Brian Bruns and others"), "documenters", documenters, "logo", pixbuf, diff --git a/src/libmdb/file.c b/src/libmdb/file.c index 1816923..564ca0f 100644 --- a/src/libmdb/file.c +++ b/src/libmdb/file.c @@ -217,13 +217,16 @@ MdbHandle *mdb_open(const char *filename, MdbFileFlags flags) return NULL; } mdb->f->jet_version = mdb_get_int32(mdb->pg_buf, 0x14); - if (IS_JET5(mdb)) { - mdb->fmt = &MdbJet4Constants; - } else if (IS_JET4(mdb)) { - mdb->fmt = &MdbJet4Constants; - } else if (IS_JET3(mdb)) { + switch(mdb->f->jet_version) { + case MDB_VER_JET3: mdb->fmt = &MdbJet3Constants; - } else { + break; + case MDB_VER_JET4: + case MDB_VER_ACCDB_2007: + case MDB_VER_ACCDB_2010: + mdb->fmt = &MdbJet4Constants; + break; + default: fprintf(stderr,"Unknown Jet version.\n"); mdb_close(mdb); return NULL; diff --git a/src/util/mdb-ver.c b/src/util/mdb-ver.c index c89a2b9..1cd1ac8 100644 --- a/src/util/mdb-ver.c +++ b/src/util/mdb-ver.c @@ -66,14 +66,22 @@ main(int argc, char **argv) mdb_exit(); exit(1); } - if (IS_JET3(mdb)) { + switch(mdb->f->jet_version) { + case MDB_VER_JET3: printf("JET3\n"); - } else if (IS_JET4(mdb)) { + break; + case MDB_VER_JET4: printf("JET4\n"); - } else if (IS_JET5(mdb)) { - printf("JET5\n"); - } else { + break; + case MDB_VER_ACCDB_2007: + printf("ACE12\n"); + break; + case MDB_VER_ACCDB_2010: + printf("ACE14\n"); + break; + default: printf(_("unknown database version\n")); + break; } mdb_close(mdb);