1. 程式人生 > >GDAL開啟mdb檔案失敗解決方法

GDAL開啟mdb檔案失敗解決方法

使用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");