mirror of
https://github.com/mdbtools/mdbtools.git
synced 2026-02-25 21:26:41 +08:00
Improved support for Access 2010, 2013, and 2016
Some Access 2010 files use 0x03 as the version number rather than 0x0103. For this reason I have changed the call to mdb_get_int32 to mdb_get_byte. In addition, according to the Library of Congress page: https://www.loc.gov/preservation/digital/formats/fdd/fdd000463.shtml Access 2016 uses 0x05 as the version number. I have inferred from the Wikipedia page that Access 2013 likely uses 0x04.
This commit is contained in:
@@ -71,6 +71,12 @@ MdbCatalogEntry *entry = mdb_get_catalogentry_by_name(mdb, "SummaryInfo");
|
||||
case MDB_VER_ACCDB_2010:
|
||||
version = "ACE 14 (Access 2010)";
|
||||
break;
|
||||
case MDB_VER_ACCDB_2013:
|
||||
version = "ACE 15 (Access 2013)";
|
||||
break;
|
||||
case MDB_VER_ACCDB_2016:
|
||||
version = "ACE 16 (Access 2016)";
|
||||
break;
|
||||
default:
|
||||
version = "Unknown";
|
||||
}
|
||||
|
||||
@@ -221,7 +221,7 @@ MdbHandle *mdb_open(const char *filename, MdbFileFlags flags)
|
||||
mdb_close(mdb);
|
||||
return NULL;
|
||||
}
|
||||
mdb->f->jet_version = mdb_get_int32(mdb->pg_buf, 0x14);
|
||||
mdb->f->jet_version = mdb_get_byte(mdb->pg_buf, 0x14);
|
||||
switch(mdb->f->jet_version) {
|
||||
case MDB_VER_JET3:
|
||||
mdb->fmt = &MdbJet3Constants;
|
||||
@@ -229,6 +229,8 @@ MdbHandle *mdb_open(const char *filename, MdbFileFlags flags)
|
||||
case MDB_VER_JET4:
|
||||
case MDB_VER_ACCDB_2007:
|
||||
case MDB_VER_ACCDB_2010:
|
||||
case MDB_VER_ACCDB_2013:
|
||||
case MDB_VER_ACCDB_2016:
|
||||
mdb->fmt = &MdbJet4Constants;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -81,6 +81,12 @@ main(int argc, char **argv)
|
||||
case MDB_VER_ACCDB_2010:
|
||||
printf("ACE14\n");
|
||||
break;
|
||||
case MDB_VER_ACCDB_2013:
|
||||
printf("ACE15\n");
|
||||
break;
|
||||
case MDB_VER_ACCDB_2016:
|
||||
printf("ACE16\n");
|
||||
break;
|
||||
default:
|
||||
printf(_("unknown database version\n"));
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user