ODBC管理器相关知识汇总
最近,在使用终端应用程序调用数据库文件时,发生了:ODBC问题之驱动程序和应用程序之间的体系结构不匹配等问题,通过查阅资料,小有收获,汇总如下:
-
ODBC:开放数据库互连,Open Database Connectivity,是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
-
DSN:DSNDataSourceName数据来源名称)有三个分别的数据来源:
用户DSN,是只对建立它的用户可用(是你的数据库的名字,随你便?……)
系统DSN 是建立一个系统级的DSN,就是对该系统的所有登录用户可用(是连接的数据库类型,如sql server,access?)
文件DSN 是建立一个 DSN 的文件, 信息存在文件里
-
驱动程序:也是一个动态连接链接库文件,支持 ODBC 的应用程序(如 Excel)可以用它来访问 ODBC 数据源。每个 ODBC 驱动程序针对一个数据库管理系统 (DBMS),如 SQL Server、Access 等等。当应用程序呼叫ODBC函数,SQLConnect 或SQLDriverConnect时,驱动管理器就会加载相对的驱动程序与应用程序呼应。驱动程序主要是执行ODBC之相对函数,并与对应的数据源(Data Source)做沟通。驱动程序之工作如下:
1. Establishes a connect to a data source.
2. Submits requests to a data sources.
3. Translates data to or from other formats,if requested by the application.
4. Return results to the application.
5. Formats errors into standard error codes and returns them to the application.
6. Declares and manipulates cursors if necessary (invisible to the application).
7. Initiates transactions if the data source requires explicit transaction initiation(invisible to the app).
1、检查ODBC中安装的各种驱动程序的版本(非指ODBC版本!)
如:检查 ODBC SQL Server 驱动程序版本(32 位 ODBC),有关 Microsoft SQL Server 项的信息显示在“版本”列中。
WOW64 支持:
WOW64(Windows 64 位上的 Windows 32 位)是 Windows 64 位版本中的一项功能,使用该功能可以在 32 位模式下本机运行 32 位应用程序。 尽管基础操作系统是 64 位操作系统,但应用程序以 32 位模式工作。 SQL Server 2016 安装不支持 WOW64。 但是,WOW64 支持管理工具。
由于程序是32位的所以应该配置32位的odbc源
运行程序:C:\Windows\SysWOW64\odbcad32.exe
对于64位的程序则配置64位的odbc源,位置在C:\Windows\System32\odbcad32.exe
4、32位Microsoft Office 默认的32位ODBC驱动程序改变为64位ODBC驱动程序(特殊处理!)
32位的Microsoft Office 软件,默认安装32位ODBC驱动程序,如何单独安装对应的64位OFFICE的ODBC驱动程序?
64位ODBC驱动程序 Access 及 Excel
64位windows平台默认不安装Access的64位ODBC驱动,此下载将安装一系列组件,帮助在现有的 Microsoft Office 文件(例如 Microsoft Office Access 2010(*.mdb 和 *.accdb)文件和 Microsoft Office Excel 2010(*.xls、*.xlsx 和 *.xlsb)文件)与其他数据源(例如 Microsoft SQL Server)之间传输数据。还支持与现有文本文件建立连接。此外,还会安装 ODBC 和 OLEDB 驱动程序,供应用程序开发人员在开发与 Office 文件格式连接的应用程序时使用。
AccessODBC驱动原版资源:https://www.microsoft.com/en-us/download/details.aspx?id=13255
AccessDatabaseEngine.exe(32位)、AccessDatabaseEngine_X64.exe(64位)
(1)下载安装64位Office 2010 (常规方法)
一个好消息是Office 2010 有了64位版本,同时微软也发布了64为的ODBC驱动程序。见上!
(2)32位Office 2010 安装64为的ODBC驱动程序(特殊处理)
我们的机器上可能都已经安装了Office 2007等32位的Office,下载AccessDatabaseEngine_X64.exe安装时多半会碰到下面的错误信息,从而无法继续。
只有升级到Office 2010 64位版一条路可以走了么?可是貌似微软都建议我们用32位的而不是64位的,我可不想就为这一个ODBC去升级惹麻烦。下面是Microsoft关于是用Office 32还是64的回答。
Yes, 64-bit Office 2010 product upgrades will be available. However we strongly recommend most users install 32-bit version of Office 2010 on both 32 and 64-bit Operating Systems because currently many common add-ins for Office will not function in the 64-bit edition. The 64-bit installation of Microsoft Office 2010 products will be available for users who commonly use verylarge documents or data set and need Excel 2010 programs to access greater than 2GB of memory. There may be technical issues with the 64-bit version and in order to install a 64-bit version of Office 2010 product users must have a 64-bit supported operating system on their PC.
所以应该找个办法能在安装了32位Office的机器上安装这个64位的ODBC驱动。下面是更改方法:
先用RAR把AccessDatabaseEngine_X64.exe解压缩,里面会有一个AceRedist.msi安装文件,然后用Orca(下载地址http://www.pc6.com/softview/SoftView_14253.html#download)打开这个MSI,找到LaunchCondition里面的BLOCKINSTALLATION,删掉,保存。现在在运行AceRedist.msi,非常顺利。经过测试,使用正常。下图为64位ODBC程序界面:
Orca 是一款由微软提供的用于 Windows Installer 数据库表编辑器。可用来编辑 Windows Installer 数据库文件 (.msi) 文件,合并模块 (.msm) 文件,补丁 (.msp) 文件,内部一致性计算程序 (.cub) 文件和补丁创建属性 (.pcp) 文件。是修改和本地化 Windows Installer 数据库的最佳辅助工具。
方法一:查看软件安装路径
第一步、对着软件图标击右键,选择属性
第二步、查看看软件的 安装路径,在软件属性界面,查看“目标”选项后面,看软件安装在哪一个文件夹,如下图所示,安装在Program Files (x86)文件夹就是32位软件;安装在Program Files文件夹的软件就是64位软件。
打开任务管理器,看软件在任务管理器里面的进程后面有没有*32;有的话是32位软件;没有的话就是64位软件,如我们查看VMware虚拟机的位数,如下图所示
顺利建好odbc后,eclipse下连接又出现了问题:
本机:64位win7,64位JDK,做Web实验用32位myeclipse不管是Access还是SQLServer连接数据库都出问题后,我终于明白当初做Java实验为啥连不上Access数据库但SQLServer没问题了,现在完美解决,哈哈!
-
关于JDK释义
注: