使用GDAL打开mdb文件时提示下面错误信息:c++
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的数据格式便可。ruby
查看GDAL库源码发现,这个连接字符串能够经过配置项“PGEO_DRIVER_TEMPLATE”和“MDB_DRIVER_TEMPLATE”来进行配置,只需在命令行里面使用–config参数配置便可。markdown
--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");