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");
GDAL打开mdb文件失败解决方法的更多相关文章
- QT visual stuido 集成插件不能打开ui文件的解决方法(去掉xml的UTF8标记)
QT visual stuido 集成插件不能打开ui文件的解决方法 visual studio里不能打开这个ui文件,出现warning等解决方法是:于是将<?xml version=&quo ...
- VMWare启动虚拟机失败,提示锁定文件失败解决方法
1.问题描述:未正常关闭虚拟机,重新启动时,VMWare启动虚拟机失败 2.解决方法: ①找到该虚拟系统所在的目录,即弹出框中的目录,在目录中找到Windows XP Professional.vmx ...
- UBUNTU13.04下Gedit打开txt文件乱码解决方法
刚刚装的ubuntu13.04,在用ubuntu下的gedit打开win7下的txt文件时中文显示乱码,这是因为编码方式不同造成的.windows下文件的编码方式是GBK,而ubuntu下gedit默 ...
- too many open files(打开的文件过多)解决方法
https://blog.csdn.net/roy_70/article/details/78423880 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...
- php_admin_value open_basedir 引起的上传文件失败解决方法
为了安全,我们通常会在虚拟主机设置中,加入这一行php_admin_value open_basedir "/usr/local/apache/htdocs/www"但这会导致mo ...
- 【NX二次开发】设置了“附加包含目录”,还是提示“无法打开包括文件”的解决方法
项目属性中的"附加包含目录"路径完全正确,但是还是无法找到头文件: 这个问题我遇到过不止一次,纠结了很久,终于发现了解决方法: 改为: 问题解决! 分析原因:项目中的属性配置 与 ...
- HDFS源码文件过大,IDEA打开失败解决方法
问题现象:hadoop 3.1.0源码文件ClientNamenodeProtocolProtos大小4M+,IDEA打开时加载失败,ClientNamenodeProtocolPB报错找不到类. - ...
- 架设传奇时打开DBC数据库出错或读取DBC失败解决方法
架设传奇时打开DBC数据库出错或读取DBC失败解决方法 DBC右键-属性-高级-管理员身份运行 即可
- Win10 连接L2TP VPN 失败解决方法
Win10 连接L2TP VPN 失败解决方法 iOS系统不知道在什么时候,已经不支持PPTP VPN.偶尔的机会刚好看到github上的一键式VPN服务器部署脚本setup-ipsec-vpn,就在 ...
随机推荐
- Java-NIO(八):DatagramChannel
Java NIO中的DatagramChannel是一个能收发UDP包的通道.操作步骤: 1)打开 DatagramChannel 2)接收/发送数据 同样它也支持NIO的非阻塞模式操作,例如: @T ...
- asp.net core 三 Nuget包管理
参考连接:http://www.cnblogs.com/netcore2/p/7412891.html 这里的说明,基本就是学习了别人的文章,自己做了个备份 asp.net c ...
- Text-文本撤销
#撤销操作 from tkinter import * master = Tk() #打开undo按钮 text=Text(master,width=30,height=5,undo=True) te ...
- CountDownLatch与thread-join()的区别
今天学习CountDownLatch这个类,作用感觉和join很像,然后就百度了一下,看了他们之间的区别.所以在此记录一下. 首先来看一下join,在当前线程中,如果调用某个thread的join方法 ...
- 在windows系统之中查看目前已安装的更新
方法1:使用PowerShell get-hotfix 方法2:使用cmd systeminfo.exe 参考链接
- C#之Winform跨线程访问控件
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...
- [HNOI 2001]求正整数
Description 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m.例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6:而且是最小的有4个因子的整数. Input n ...
- 生物分子gene
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAswAAAHoCAYAAABdBLmnAAAgAElEQVR4nOzdB5gsRfU+/kZyTiIgCJ
- 【BZOJ1500】【Noi2005】维修数列
题意原题很清楚了. 解题思路:裸的平衡树操作,注意动态开点即可. 细节还是比较多的,具体参见代码吧... #include <stdio.h> #include <algorithm ...
- poj 2318 叉积+二分
TOYS Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13262 Accepted: 6412 Description ...