2015-11-05 60 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位系統上。

相關問題