GDAL開啟mdb檔案失敗解決方法
阿新 • • 發佈:2018-12-29
使用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");