win7配置odbc数据源配置系统DNS添加里没有东西

关于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个字符!
权限设置: 公开
仅自己可见配置和注册ODBC数据源
  ODBC管理器(Administrator)它负责安装驱动程序,管理数据源,并帮助程序员跟踪ODBC的函数调用。在ODBC中,应用程序不能直接存取数据库,它必须通过管理器和数据库交换信息。ODBC管理器负责将应用程序的SQL语句及其他信息传递给驱动程序,而驱动程序则负责将运行结果送回应用程序。运行32bit ODBC管理器后,出现一个主对话框,它的主要内容是要求用户输入一个数据源,所谓数据源就是数据库位置、数据库类型以及ODBC驱动程序等信息的集成。数据源负责将运行结果送回应用程序。应用程序、ODBC管理在使用之前必须通过ODBC管理器进行登记和连接,启动ODBC管理器后,选取Add按钮,根据自己的数据库类型,选择相应的ODBC驱动程序,然后输入数据源名(Data Source Name)和数据库文件名(Database Name),完成这些步骤后,以后的应用程序就能够通过ODBC管理器的数据源直接操纵数据库。
  在Window95或者98下,ODBC管理器在控制面板里面的32bit ODBC。而在WINDOW2000下,ODBC管理器是在程序管理工具&数据源(ODBC)中。
  下面以Window2000下的ODBC管理器为例,介绍一下每一页的用途:
  1、 用户DSN:ODBC用户数据源存贮了如何与指定数据库提供者连接的信息。只对当前用户可见,而且只能用于当前机器上。这里的当前机器是只这个配置只对当前的机器有效,而不是说只能配置本机上的数据库。它可以配置局域网中另一台机器上的数据库的。
  2、 系统DSN: ODBC系统数据源存贮了如何指定数据库提供者连接的信息。系统数据源对当前机器上的所有用户都是可见的,包括NT服务。也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。
  3、 文件DSN:ODBC文件数据源允许用户连接数据提供者。文件DSN可以由安装了相同驱动程序的用户共享。这是界于用户DSN和系统DSN之间的一种共享情况。
  4、 驱动程序:这页列出了本机上所有安装的数据库驱动程序。里面列举了每个驱动程序的名称,版本,提供商公司,驱动程序文件名,以及安装日期。
  5、 跟踪:ODBC跟踪允许创建调用ODBC的日志,提供给技术人员查看。里面可设定日志的路径和文件名。技术人员通过这里面的信息可以看到本机上所有的数据库访问的时间,用户,以及出错信息等情况。也可以通过这个辅助调试应用程序,可以启动Visual Studio的分析器,来进行ODBC的跟踪。
  6、 连接池:连接池允许应用程序重用原来打开的的连接句柄,这样可以节省到服务器的往返过程。
  7、 关于:最后这一页列出了所有的ODBC的核心文件。
  这里,我们以常用的Access数据库为例子,来说明创建一个用户数据源的过程。
  一、手工配置
  1.ODBC数据源管理器
  在进行数据库开发时,为了达到配置ODBC,进行DSN定义注册的目的,微软给出了一个手工操作的解决方法。在Windows 9X操作系统的控制面板中,有一个名为&ODBC数据源(32位)&的图标,可以通过它激活专门为用户设置ODBC环境的程序(ODBC Data Source Administrator,ODBC数据源管理器)。在Windows 2000操作系统中,上述图标被放置在控制面板的&管理工具&里面。
  这个用于设置ODBC环境的程序叫做桌面驱动程序,它支持数种DBMS(Database Management System,数据库管理系统)。当用户想增加一个数据源和一个所需要的驱动程序时,可以通过ODBC数据源管理器的配置对话框配置特定类型的数据库。大多数情况下,在编写对数据库操作的程序时,我们至少需要知道诸如数据库文件名、系统(本地或远程)、文件夹等信息,同时要给数据源命名。
  2.定义数据源的类型
  用户可以定义以下三种类型的数据源:
  ●用户数据源:作为位于计算机本地的用户数据源而创建的,并且只能被创建这个数据源的用户所使用;
  ●系统数据源:作为属于计算机或系统而不是特定用户的系统数据源而创建的,用户必须有访问权才能使用;
  ●文件数据源:指定到文件中作为文件数据源而定义的,任何已经正确地安装了驱动程序的用户皆可以使用这种数据源。
  3.数据源注册的步骤
  以Microsoft Access为例,如果在C:\myfile\文件夹里创建了一个名为myexample.mdb的数据库文件,其注册步骤如下:
  ●在控制面板里找到&ODBC数据源&图标,打开数据源管理器的交互界面;
  ●笔者创建的数据库文件是供本机上的用户使用的,所以这里选择&用户 DSN&;
  ●然后按下&添加&按钮,在弹出的数据源管理器对话框里,为自己所要创建的数据源选择一个驱动程序,本文的数据库文件是用Microsoft Access创建的,所以要选择&Microsoft Access Driver (*.mdb)&;
  ●按&完成&按钮后,进入一个标题为&ODBC Microsoft Access 安装&的界面,在其中设置&数据源名&为&mydatasource&,选取数据库文件 &C:\myfile\myexample.mdb&,然后确定即可。
  这样我们就完成了一个简单的ODBC数据源的注册。当然,在以上的步骤中,用户可以根据自己的不同需要,设置不同的选项。
  注册结束后,我们便可以在对数据库的编程中,操作该数据库了。
  二、在VB中注册数据源
  在VB中对数据库进行编程时,可以利用RegisterDataSource方法为ODBC数据源输入连接信息到 Windows 注册表中。它的语法是:
  RegisterDataSource DSN, driver, silent, attributes
  其中参数代表的含义分别为:
  ●DSN:字符串表达式,它是在引用数据源描述信息块时所使用的名字。例如,如果数据源是一个ODBC远程数据库,这就是服务器的名字;如果是用户DSN,则是注册的数据源的名字。
  ●drive:字符串表达式,表示ODBC驱动程序的名称。它并不是 ODBC 驱动程序动态连接库 (DLL) 文件名。例如,SQL Server 是驱动程序名,而 SQLSRVR.DLL 是 DLL 文件名。必须安装ODBC 及相应的驱动程序。
  ●silent:布尔类型值,如果不想显示 ODBC 驱动程序对话框,用以提示指定驱动程序的信息,该值就为 True;如果希望显示 ODBC 驱动程序对话框,该值就为 False。如果 silent 为 True,那么attributes必须包含所有必需的指定驱动程序的信息。
  ●attributes:字符串表达式,它是一个要添加到 ODBC.INI 文件中的关键字列表。编写程序时,可以根据需要选择若干attributes的参数进行设置。
  例如:我们可以编写如下的VB程序,达到与上面手工注册一样的目的。程序清单如下:
  Sub RegisterDataSource()
  Dim strAttribs As String
  &建造关键字字符串。
  &C:\myfile\myexample.l.mdb数据库文件名(包含路径)
  strAttribs =&DBQ=& _
  & &C:\myfile\myexample.mdb& _
  & Chr$(13) & &OemToAnsi=No& _
  & Chr$(13) & &SERVER=SEQUEL& _
  & Chr$(13) & &Network=DBNMPNTW& _
  & Chr$(13) & &Database=WorkDB&_
  & Chr$(13) &&Address=\\SEQUEL\PIPE\SQL\QUERY&
  &建立新的注册的 DSN。
  rdoEngine.rdoRegisterDataSource &mydatasource&,
  &Microsoft Access Driver (*.mdb)&, True,
  strAttribs
  End Sub
  Private Sub Form_Load()
  Call rdoRegisterDataSource
  End Sub
  注意:为了在代码中使用rdoEngine和远程数据对象,必须先在&引用&对话框中设置一个到 Microsoft Remote Data Object 2.0 对象库的引用,否则在第一次引用rdoEngine 对象时会导致编译错误。
  三、利用注册表合并
  1.解决思路
  考查ODBC数据源注册后对Windows注册表的修改情况,我们可以发现所注册的数据源对Windows注册表的影响关键集中在[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI]里。
  这样,我们导出[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI],每次以之为模板,把所要注册的数据源信息加入到注册表导出文件的对应位置,然后再将该文件与系统注册表合并即可。
  2.具体操作
  首先,我们要弄清楚Regedit 及其参数的含义。Regedit是打开系统注册表的命令。在&开始\运行\&中输入即可。它的三个参数含义如下:
  ●Regedit /e myfile.reg :表示把注册表文件导出到myfile.reg 文件中,相当于复制整个注册表文件到myfile.reg中;
  ●Regedit /c myfile.reg:表示把myfile.reg导入注册表,相当于用该文件的内容覆盖了注册表的内容;
  ●Regedit /s myfile.reg :表示把myfile.reg文件的内容与注册表文件的内容进行合并。
  我们只需在注册表中将有用的部分导出,而后将所要注册的数据源的信息加入,再与系统注册表合并就可以了。这个合并的过程,我们既可以手工输入来实现,也可以通过编程实现自动合并。
  注意:为了防止误操作,一定要将系统注册表作一次备份。
  从安全的角度考虑,笔者首推利用在Windows控制面板中的ODBC数据源管理工具来进行数据源注册,以免因对注册表的不熟或疏忽造成不必要的损失。当然,还有一些应用工具,可以实现对ODBC数据源的注册,用户可以根据不同的需求选择使用。
------分隔线----------------------------
上一篇:没有了
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助如何在Win7 x64上的配置32位的PostgreSQL ODBC数据源_百度知道
如何在Win7 x64上的配置32位的PostgreSQL ODBC数据源
提问者采纳
或者32位和64位驱动互相冲突,但是是用来管理32位驱动的但是在管理工具下ODBC数据源界面里只能选择64位的PostgreSQL驱动;odbcad32;syswow64&#92.exe)实际上是64位的驱动管理。官方的解释为。odbcad32.exe运行界面和管理工具下ODBC数据源配置界面类似。卸卸装装反复几次;system32&#92。一开始以为在ODBC数据源无法选择32位驱动是和安装驱动的顺序有关,32位竟然没有:从cmd运行%SystemRoot%&#92,一些32位的应用软件就没法利用ODBC链接到数据库了(尝试选取地话。后来查阅psqlodbc项目组的FAQ才找到解决办法;odbcad32。Win7 x64管理工具下ODBC数据源配置程序(%SystemRoot%&#92,会报告选取的数据源(64位)和应用程序的系统构架(32位)不一致而失败).exe来配置32位的PostgreSQL ODBC数据源,问题依旧。如此一来
其他类似问题
odbc数据源的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁windows身份验证访问odbc数据源,关于ODBC连接字符串,怎么配置系统dsn,求大神指教。
[问题点数:100分,结帖人xiongshengwu]
windows身份验证访问odbc数据源,关于ODBC连接字符串,怎么配置系统dsn,求大神指教。
[问题点数:100分,结帖人xiongshengwu]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 win7 数据源 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信