使用GDAL打開mdb文件時提示下面錯誤信息:
ERROR 1: Unable to initialize ODBC connection to DSN for DRIVER=Microsoft Access Driver (*.mdb);DBQ=C:\Users\SCRS-Minlu\Desktop\ZHONGWEI.MDB,
[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序
ERROR 1: Unable to initialize ODBC connection to DSN for DRIVER=Microsoft Access Driver (*.mdb);DBQ=C:\Users\SCRS-Minlu\Desktop\ZHONGWEI.MDB,
[Microsoft][ODBC 驅動程序管理器] 未發現數據源名稱並且未指定默認驅動程序
通過錯誤信息發現,DSN的鏈接字符串是“DRIVER=Microsoft Access Driver (.mdb)”,而通過微軟的官網(http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=13255)查看Access的驅動說明,裏面的鏈接字符串爲“Driver=Microsoft Access Driver (.mdb, *.accdb)”。比較可以看出,字符串裏面多了一種數據格式accdb,這個是Office新版本的格式,所以只需要將DSN的鏈接字符串加上accdb的數據格式即可。
查看GDAL庫源碼發現,這個鏈接字符串可以通過配置項“PGEO_DRIVER_TEMPLATE”和“MDB_DRIVER_TEMPLATE”來進行配置,只需在命令行裏面使用–config參數配置即可。
--config MDB_DRIVER_TEMPLATE "DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s"
--config PGEO_DRIVER_TEMPLATE "DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s"
下面是加上配置項之後輸出截圖:
從上圖可以看出,mdb文件可以打開。
如果需要在程序中配置的話,可以使用函數CPLSetConfigOption來進行配置。
CPLSetConfigOption("PGEO_DRIVER_TEMPLATE", "DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s");
CPLSetConfigOption("MDB_DRIVER_TEMPLATE", "DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=%s");