明明是 64 位系统,为什么 sys.sys devices platformm 显示 win 32

关于32位程序在Win7&64位系统中连接Microsoft Excel数据源的问题 - 雨令 - 推酷
关于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
而这个selenium框架之前都是运行在
系统上的,且框架脚本编译之后也是32位的,所以初步判断这与系统64位相关。
解决方案:
. 下载32位的AccessDatabaseEngine.exe文件并安装(
默认安装即可
),由于我电脑上的Office是2010版本,所以需要下载2010版本的Access Data Engine。下载地址如下:
由于我的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 文件格式连接的应用程序时使用。
如果你是使用 OLEDB 的应用程序开发人员,请将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”, 如果要连接到 Microsoft Office Excel 数据,请将“Excel 12.0”添加到 OLEDB 连接字符串的扩展属性中。
如果你是使用 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
. 对ODBC数据源进行配置
如果你打开
ODBC管理器
,由于系统是64位的,所以打开的也是64位版本的ODBC管理器。由于我的selenium框架是32位程序,它不能从64位的ODBC管理器中创建的DSN(Data Source Name)中找到相应的数据源,故会发生上面的错误。
而32位的ODBC Manager是在如下路径的:
C:\Windows\SysWOW64\odbcad32.exe
双击odbcad32.exe文件,将出现如下窗口:
button添加数据源,选择
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
最终添加System DNS如下:
最后点击OK就配置成功了。
注意:最后一定要记得重启下电脑之后再运行相应的应用程序。
通过以上的步骤,再去运行selenium框架中的代码,就没有抛错,而是顺利执行了。连接Microsoft Excel成功了。
遇到问题还是需要抓住重点,反复排查,并且好好利用google, baidu这些有利工具,将所有搜索到的信息进行综合考虑,最终得到解决方案。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致下次自动登录
现在的位置:
& 综合 & 正文
关于就win32应用程序在64位机器上读取system目录下文件失败的问题的解决方案
今天做项目的时候碰到一个问题,就是要去遍历系统的所有进程,然后获取每个进程的镜像全路径,进而对其做一些非破坏性的处理,然后在用_tfopen_s以二进制读模式打开的时候,发现在64位vista和64位win7上某些文件访问不到,比如“C:\Windows\System32\smss.exe”,还有好多,这里就不在一一列举了。然后我就很郁闷是不是库函数在64位下出了什么问题,然后改用系统函数CreateFile以共享读模式打开文件,结果还是一样,没有任何改变,再GetLastError了一下,返回值为2,也就是找不到指定的文件,但是该文件确实存在啊,怎么会这样呢,然后就是各种查查查,后来看到Wow64DisableWow64FsRedirection,试了一下就好使了,具体用法如下:
typedef BOOL (WINAPI * WDWFD)(_Out_
PVOID);WDWFD pWdwfd = (WDWFD)GetProcAddress(GetModuleHandle(_T("Kernel32.dll")),"Wow64DisableWow64FsRedirection");if (pWdwfd!=NULL){pWdwfd(NULL);}
在你需要打开文件的前面加上上述,OK,不管是32位机器还是64位机器就都好使了。
&&&&推荐文章:
【上篇】【下篇】为了账号安全,请及时绑定邮箱和手机
platform显示的操作系统的位数与我电脑不符
显示win32,但我电脑是64位操作系统,奇怪
请问一下navigator.platform返回的客户端操作系统信息,这个操作系统不是我电脑的是指哪个的呢,我用不同浏览器得到的结果还不一样,有的win32,有的win64。
非常感谢!
突然想到了,浏览器有32位,64位之分
写下你的评论...
写下你的评论...
Copyright (C)
All Rights Reserved | 京ICP备 号-2

我要回帖

更多关于 amd 64 bit platform 的文章

 

随机推荐