Access 数据库不同格式连接问题

操作环境:win7 64位操作系统,office 2016 64位,ArcGIS 32位,C#程序

问题描述:客户提出“管线数据入库”功能,将外业数据(CAD质检程序导出的标准库)转成空间数据库geodatabase时,提示外业数据库为不可识别的数据库。

解决过程:

Access数据格式目前有三种

   1)   Microsoft Access 数据库(2000格式)(*.mdb)

   2)   Microsoft Access 数据库(2002-2003格式)(*.mdb)

   3)   Microsoft Access 2007-2016数据库(*.accdb):根据电脑中安装office版本有所变动,但都是2007+,此格式默认数据格式为.accdb,可以改成mdb,但本质上不会改变数据格式。

与CAD开发人员核实,标准库Access格式为2007+格式;查看代码CS程序连接外业数据库时采用的连接字符串为Microsoft.Jet.OLEDB.4.0,改成Microsoft.ACE.OLEDB.12.0,重新编译程序,测试程序提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”错误信息,经上网查询得知

Microsoft.Jet.OLEDB.4.0提出的比较早,使用于2000格式、2002-2003格式,且数据引擎为微软自带,不支持2007+格式;

Microsoft.ACE.OLEDB.12.0兼容以上所有access版本,但要想利用该功能,必须在电脑上安装2007数据库连接组件AccessDatabaseEngine.exe,此组件位数与电脑上安装的office有关,即office为64,此组件也要下载64位。

安装后,再次测试该功能,可用;

弊端:若将程序中所有连接字符串都改成12.0,就需要在电脑中安装2007数据库连接组件,对于CS程序安装部署是一件麻烦事。

疑点:经测试安装2016版本的数据库连接组件,程序不好用。不清楚是否无论电脑上安装何总版本office,都需要另装2007的组件。

参考网站资料:

https://www.cnblogs.com/jinianjun/archive/2011/12/05/2276679.html

2007数据库连接组件下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

posted @ 2018-01-08 17:20  开发界的小菜鸟  阅读(768)  评论(0编辑  收藏  举报