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");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决