在本地运行但不在服务器上运行,因为 "Data source name not found and no default driver specified"
Runs locally but not on server because "Data source name not found and no default driver specified"
我想使用 Java 读取我的单元格值(在 Excel 文件中)。在此过程中,我使用 ODBC 将 Excel 文件作为我的数据源。我在单独的 .properties 文件中编写了用户、密码、URL 和所有属性代码,以便我的 Java 程序读取并连接到 ODBC。当我 运行 它在我的本地机器上时它工作正常,但当我 运行 它在服务器上时它失败了。我收到的错误是:
[Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified
服务器是一台运行于 Windows 2012 的 64 位机器。我在(服务器的)控制面板中检查了我的管理工具。它有两个 ODBC,一个用于 32 位,另一个用于 64 位。
为什么我的代码 运行ning 只在我的本地机器上而不在服务器上?
是不是因为有两个工具,程序搞不清楚该找哪个?
myDB=jdbc:odbc:Driver={Microsoft Excel Driver (*.xls,
*.xlsx)};DBQ=c:/data.xls;READONLY=true;DriverID=22;
这是我在 .properties 文件中编写的代码。用户和密码字段为空。
是我遗漏了什么还是其他什么?
我认为最好的办法是从控制面板创建一个 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 位系统,因此您可能需要安装 64-Bit OLEDB Provider for ODBC (MSDASQL) .
我想使用 Java 读取我的单元格值(在 Excel 文件中)。在此过程中,我使用 ODBC 将 Excel 文件作为我的数据源。我在单独的 .properties 文件中编写了用户、密码、URL 和所有属性代码,以便我的 Java 程序读取并连接到 ODBC。当我 运行 它在我的本地机器上时它工作正常,但当我 运行 它在服务器上时它失败了。我收到的错误是:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
服务器是一台运行于 Windows 2012 的 64 位机器。我在(服务器的)控制面板中检查了我的管理工具。它有两个 ODBC,一个用于 32 位,另一个用于 64 位。
为什么我的代码 运行ning 只在我的本地机器上而不在服务器上?
是不是因为有两个工具,程序搞不清楚该找哪个?
myDB=jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx)};DBQ=c:/data.xls;READONLY=true;DriverID=22;
这是我在 .properties 文件中编写的代码。用户和密码字段为空。
是我遗漏了什么还是其他什么?
我认为最好的办法是从控制面板创建一个 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 位系统,因此您可能需要安装 64-Bit OLEDB Provider for ODBC (MSDASQL) .