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

GDAL打开mdb文件失败解决方法的更多相关文章

  1. QT visual stuido 集成插件不能打开ui文件的解决方法(去掉xml的UTF8标记)

    QT visual stuido 集成插件不能打开ui文件的解决方法 visual studio里不能打开这个ui文件,出现warning等解决方法是:于是将<?xml version=&quo ...

  2. VMWare启动虚拟机失败,提示锁定文件失败解决方法

    1.问题描述:未正常关闭虚拟机,重新启动时,VMWare启动虚拟机失败 2.解决方法: ①找到该虚拟系统所在的目录,即弹出框中的目录,在目录中找到Windows XP Professional.vmx ...

  3. UBUNTU13.04下Gedit打开txt文件乱码解决方法

    刚刚装的ubuntu13.04,在用ubuntu下的gedit打开win7下的txt文件时中文显示乱码,这是因为编码方式不同造成的.windows下文件的编码方式是GBK,而ubuntu下gedit默 ...

  4. too many open files(打开的文件过多)解决方法

    https://blog.csdn.net/roy_70/article/details/78423880 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  5. php_admin_value open_basedir 引起的上传文件失败解决方法

    为了安全,我们通常会在虚拟主机设置中,加入这一行php_admin_value open_basedir "/usr/local/apache/htdocs/www"但这会导致mo ...

  6. 【NX二次开发】设置了“附加包含目录”,还是提示“无法打开包括文件”的解决方法

    项目属性中的"附加包含目录"路径完全正确,但是还是无法找到头文件: 这个问题我遇到过不止一次,纠结了很久,终于发现了解决方法: 改为: 问题解决! 分析原因:项目中的属性配置 与 ...

  7. HDFS源码文件过大,IDEA打开失败解决方法

    问题现象:hadoop 3.1.0源码文件ClientNamenodeProtocolProtos大小4M+,IDEA打开时加载失败,ClientNamenodeProtocolPB报错找不到类. - ...

  8. 架设传奇时打开DBC数据库出错或读取DBC失败解决方法

    架设传奇时打开DBC数据库出错或读取DBC失败解决方法 DBC右键-属性-高级-管理员身份运行 即可

  9. Win10 连接L2TP VPN 失败解决方法

    Win10 连接L2TP VPN 失败解决方法 iOS系统不知道在什么时候,已经不支持PPTP VPN.偶尔的机会刚好看到github上的一键式VPN服务器部署脚本setup-ipsec-vpn,就在 ...

随机推荐

  1. SQLContext、HiveContext自定义函数注册

    本文简单介绍两种往SQLContext.HiveContext中注册自定义函数方法. 下边以sqlContext为例,在spark-shell下操作示例: scala> sc res5: org ...

  2. flask 操作mysql的两种方式-sql操作

    flask 操作mysql的两种方式-sql操作 一.用常规的sql语句操作 # coding=utf-8 # model.py import MySQLdb def get_conn(): conn ...

  3. nginx location的命中过程

    1 先判断精准命中,立即返回结果并结束解析过程 2 判断普通命中,如果有多个命中,"记录"下"最长"的命中结果(注意:记录但不结束,最长的为准) 3 继续判断正 ...

  4. innerText、innerHtml与value

    1.innerText是id为object的闭合标签内的文本,输入输出的是转义文本(字符串);  (label控件用innerText有效)2.innerHtml是<div>标签内的文本, ...

  5. 【Markdown 语法】

    Markdown 语法 摘抄自MWEB Markdown 的设计哲学 Markdown 的目標是實現「易讀易寫」. 不過最需要強調的便是它的可讀性.一份使用 Markdown 格式撰寫的文件應該可以直 ...

  6. 【Swift】swift中使用kvc赋值的时候,注意事项

    swift中使用kvc赋值的时候.假如给基础数据类型赋值,必须先给基础数据类型的变量一个初始值. 否则将会报错. var setValue(dict["id"], forKey: ...

  7. python的变量与赋值

    1.变量的命名规则 变量其实通过一个标记调用内存中的值,而变量名就是这个标记的名称,但是万一这个标记已经被提前占用或者解释器认为这个标记是不合法的,那么就会报错.下面总结了一下变量的命名规则: 1.不 ...

  8. [JLOI 2015]城池攻占

    Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池. 这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, ...

  9. ●POJ 2774 Long Long Message

    题链: http://poj.org/problem?id=2774题解: 后缀自动机 使用后缀自动机匹配,思路如下: 即如果当前的x字符匹配失败了,就可以从当前已经匹配的串的后缀去继续匹配. 然后不 ...

  10. hihocoder 1249(2015ACM/ICPC北京)

    题意: 给你一块正方形的土地,里面有矩形的草地,要求把土地分成两份,满足以下两个条件 1.两边的绿洲,左边>=右边,差值尽可能的小 2.在满足1的情况下分给左边的土地尽快能的多 而且绿洲不会出现 ...