2012-03-02 38 views
5

Tôi có một chương trình, khi được biên dịch bằng JVM 32 bit hoạt động tốt, nhưng có vấn đề nếu tôi cố gắng sử dụng JVM 64 bit. Tin nhắn tôi nhận được là: "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".Các vấn đề trình điều khiển JDBC-ODBC 64 bit Java

Tôi đang cố gắng để kết nối với cơ sở dữ liệu Excel và SQL Server sử dụng mã như sau:

String file = directory + "/fileName.xlsm"; 

String connectStr= "jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + file + ";READONLY=false"; 

try { 
    Class.forName(getDriver()); 
    gConnection = DriverManager.getConnection(connectStr); 
    //do stuff with connection 
} 

Khi tôi cố gắng kiểm tra quản lý điều khiển nó dường như không có phiên bản 64 bit của các trình điều khiển . Bất kỳ cách nào để sửa lỗi này dễ dàng và có thể kết nối bằng trình điều khiển 64 bit mà không cần thay đổi cài đặt trên máy tính (vì chương trình này sẽ được phân phối trên nhiều máy tính và tôi không muốn tải xuống trình điều khiển riêng cho từng máy tính muốn chạy nó)? Ngoài ra, có hiệu quả hơn khi kết nối bằng trình điều khiển 64 bit hay là các trình điều khiển 32 bit tốt/nhanh (tôi có bộ dữ liệu rất lớn, vì vậy những khác biệt nhỏ sẽ tạo nên sự khác biệt)?

+0

phiên bản Excel nào? trước khi Office 2010 trình điều khiển được 32 bit chỉ. – vulkanino

+0

oh, xin lỗi. đó là năm 2010. cũng, MS Office là 32-bit nhưng tôi giả sử nó vẫn có thể sử dụng trình điều khiển 64-bit? – scaevity

+0

hãy thử cách này: http://www.microsoft.com/download/en/details.aspx?displaylang=vi&id=13255#Overview – vulkanino

Trả lời

1

Ứng dụng 64 bit không thể sử dụng trình điều khiển ODBC 32 bit và ngược lại, đó là lý do bạn nhận được thông báo lỗi đó. Bạn có thể xác minh trình điều khiển ODBC nào có sẵn bằng cách chạy trình quản trị nguồn dữ liệu ODBC 32-bit (C: \ Windows \ SysWow64 \ odbcad32.exe) và 64-bit (C: \ Windows \ System32 \ odbcad32.exe) ODBC (nguồn trình điều khiển) tương ứng - trên một hệ thống 64-bit của khóa học. Việc đặt tên là khó hiểu lúc đầu. Một ứng dụng tôi đã làm việc với một vấn đề tương tự - trình điều khiển ODBC Access/Excel là 32-bit-only, có nghĩa là khi chạy trong 64-bit, ứng dụng của chúng tôi không thể xử lý tệp Excel hoặc Access cơ sở dữ liệu Access. Cuối cùng, chúng tôi đã chuyển sang sử dụng Apache POI library là thư viện Java có thể đọc/ghi Excel và các tài liệu Office khác một cách trực tiếp. Bạn có thể muốn xem xét cho rằng một thử, mặc dù chuyển đổi sẽ liên quan đến một số lượng công việc.

Vào thời điểm đó, Office 2010 vẫn chưa được ra mắt. Tôi đã không nhận ra họ tạo ra một trình điều khiển ODBC 64-bit trong Office 2010 và sẽ phải xem nếu đó là một lựa chọn hợp pháp ngay bây giờ ... ngay cả khi nó là tôi không thích dựa vào ODBC trong một ứng dụng Java.

Các vấn đề liên quan