在64位server 2003添加Excel的Odbc数据源解决方法
这两天在64位的server 2003上部署项目,由于在项目中用到odbc的excel导出,因此需要在odbc数据源中添加Excel的驱动。由于项目的开发环境使用的是32位的XP系统,因此生成的编译后的class文件应该是32位(经过这次部署经验后才有了这个概念)。好吧,开始说在2003上部署项目吧。
在项目部署之前,在2003上添加excel驱动之前由另一位同事解决了,他说安装个AccessDatabaseEngine_64.exe(这个是64位驱动),这个驱动是专门给没有安装office的系统环境提供Excel驱动,同事很坚定的说:“server 2003是64位系统,必须安装64位的驱动”。因此到了部署项目时,我一直都很坚持64位驱动是一个正确的驱动。在项目部署后使用导出Excel功能后,项目的控制台显示:“java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序”,这个提示就是系统环境中没有Excel驱动。经过了一天的百度和谷歌搜索,问题还是依旧没解决,到最后我还想给2003安装一个64位的office 2010。可惜下载了2010后,安装程序时提示office2010必须安装在vista service和server 2008,晕,最后的方法也破灭了。这时我就怀疑是不是驱动安装错了,然后我就到网上搜索64位的server 2003上添加数据源,这时我才知道有一个32位的数据源(在\Windows\SysWOW64)和一个64位的数据源(在\Windows\system32)。系统的控制面板里的数据源管理就是64位的(system32里的),我之前添加、管理Excel驱动,都是使用64位的管理器,无论我怎么编辑,控制台都是提示“ava.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序”,即是系统找不到Excel驱动(安装不上Excel驱动了)。当我看到有一篇文章提到32位编译的项目,到64位运行需要32位的驱动,这时我猜我找到问题的源头了。然后我到网上下载了AccessDatabaseEngine.exe(32位驱动)。安装完成后到SysWOW64添加Excel Files驱动,运行导出Excel功能,控制台没有报错了,问题解决了。
这次问题,让我对64位的系统有了个初步的了解,不了解的就好像我那样,一直以为自己的配置方法配错了,搞了一天都没搞好。