2015-11-05 58 views
0

我想使用Java读取我的单元格值(在Excel文件中)。在这个过程中,我使用ODBC来将Excel文件作为我的数据源。我在单独的.properties文件中编写了用户,密码,URL和所有属性代码,供我的Java程序读取并连接到ODBC。它在我的本地机器上运行时运行良好,但在服务器上运行时却失败。我收到的错误是:本地运行但不在服务器上运行,因为“未找到数据源名称并且没有指定默认驱动程序”

[微软] [ODBC驱动程序管理器]数据源名称未找到,没有 指定默认驱动程序

的服务器是64位计算机上的Windows 2012的工作。我在控制面板(服务器)中检查了我的管理工具。它有两个ODBC,一个用于32位,另一个用于64位。

我的代码只在本地机器上运行,而不是在服务器上运行的原因是什么?

是不是因为有两个工具,程序混淆在哪一个寻找?

MYDB = JDBC:ODBC:驱动器= {Microsoft Excel驱动程序(* .xls的, * .XLSX)}; DBQ = C:/data.xls; READONLY = TRUE; DriverID = 22;

这是我在.properties文件中编写的代码。用户& pwd字段为空。

有什么我想念或者是别的吗?

回答

1

我认为这里的最好的办法是从控制面板创建ODBC DSN,然后试图通过它来连接:

java.sql.Connection c = java.sql.DriverManager.getConnection("jdbc:odbc:exsh", "", ""); 

而“exsh”是DSN的指向了一个电子表格的名称将要处理的文件。

没有DSN的连接字符串应该是:

"jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=c:/data.xls" 

请记住,因为你是你可能需要安装64-Bit OLEDB Provider for ODBC (MSDASQL)在64位系统上。

相关问题