zoukankan      html  css  js  c++  java
  • 关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题

    最近在新公司电脑上跑以前的selenium测试框架的时候,抛出了如下的错误

    出现的是ODBC Driver问题:[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

    我查看了我的系统属性 -- 64 bit System, Microsoft Excel -- 32 bit

    而这个selenium框架之前都是运行在win7 32位系统上的,且框架脚本编译之后也是32位的,所以初步判断这与系统64位相关。

    解决方案:

    1. 下载32位的AccessDatabaseEngine.exe文件并安装(默认安装即可),由于我电脑上的Office是2010版本,所以需要下载2010版本的Access Data Engine。下载地址如下:

    http://www.microsoft.com/en-us/download/details.aspx?id=13255

    由于我的32位selenium框架移到了64位系统上运行,而32位编译的项目在64位系统上运行需要有32位的驱动,并且系统上安装的office也是32位的,故需要使用32位的AccessDatabaseEngine.exe驱动文件。

    Description:

    AccessDatabaseEngine.exe这个组件的作用是允许非 Microsoft Office 应用程序可以使用它们从 2010 Microsoft Office system 文件中读取数据。例如从 Microsoft Office Access 2010(mdb 和 accdb)文件以及 Microsoft Office Excel 2010(xls、xlsx 和 xlsb)文件中读取数据。这些组件还支持与 Microsoft Windows SharePoint Services 和文本文件建立连接。

    此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。

    1)如果你是使用 OLEDB 的应用程序开发人员,请将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”, 如果要连接到 Microsoft Office Excel 数据,请将“Excel 12.0”添加到 OLEDB 连接字符串的扩展属性中。

    2)如果你是使用 ODBC 连接到 Microsoft Office Access 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
         如果你是使用 ODBC 连接到 Microsoft Office Excel 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file

    2. 对ODBC数据源进行配置

    如果你打开ODBC管理器,由于系统是64位的,所以打开的也是64位版本的ODBC管理器。由于我的selenium框架是32位程序,它不能从64位的ODBC管理器中创建的DSN(Data Source Name)中找到相应的数据源,故会发生上面的错误。

    而32位的ODBC Manager是在如下路径的:C:WindowsSysWOW64odbcad32.exe

    双击odbcad32.exe文件,将出现如下窗口:

    点击System DSN tab

    点击Add button添加数据源,选择 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)

    最终添加System DNS如下:

    最后点击OK就配置成功了。

    注意:最后一定要记得重启下电脑之后再运行相应的应用程序。

    通过以上的步骤,再去运行selenium框架中的代码,就没有抛错,而是顺利执行了。连接Microsoft Excel成功了。

    总结:遇到问题还是需要抓住重点,反复排查,并且好好利用google, baidu这些有利工具,将所有搜索到的信息进行综合考虑,最终得到解决方案。

  • 相关阅读:
    JVM简单入门
    10 张图聊聊线程的生命周期和常用 APIs
    Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期
    ueditor 插入视频代码解析
    CentOS下添加新硬盘并分区格式化的详细步骤
    Java 8 stream
    crontab命令详解
    计算机网络自顶向下学习杂记
    nginx安装
    js识别PC和H5
  • 原文地址:https://www.cnblogs.com/windy1118/p/ODBC.html
Copyright © 2011-2022 走看看