win7 64位数据库连接问题:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

通过ODBC/JDBC连接程序和数据库时,异常报错“在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”的解决办法

本机:64位win7,64位JDK,做Web实验用32位myeclipse不管是Access还是SQLServer连接数据库都出问题后,我终于明白当初做Java实验为啥连不上Access数据库但SQLServer没问题了,现在完美解决,哈哈!

原因:

64位win7操作系统ODBC版本默认为64位(建立的SQLServer数据源也为64位),需对应64位JDK及64位office(access),用myeclipse时也应对应64位myeclipse版本才可使用

若为32位myeclipse,与数据库连接时应对应32位ODBC数据源(建立的SQLServer数据源为32位)

解决方法:
X:WindowsSysWOW64odbcad32.exe 
例如:
去C:/windows/syswow64文件夹下,打开odbcad.exe,这样打开的就是32位版本的odbc
利用这个为odbc创建系统 DSN 连接SQLServer或Access,Access后缀应为mdb
注意此时应把jdk路径设置为32位jdk所在路径,若用myeclipse也应使用32位版本myeclipse
 
注:
64位版的位置:C:windowssystem32odbcad32.exe
32位版的位置:C:windowssysWOW64odbcad32.exe

数据库建立并运行成功后,将JDK再改回64位好像对数据库也无影响了