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");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章