كيفية الاتصال بـ MS Access DB باستخدام Java + ODBC على Windows 7
-
26-09-2019 - |
سؤال
لقد قمت بوجود هذا السؤال كثيرًا والإجابات غير متسقة ولم يساعد أي منها. لذلك اعتقدت أنه يمكنني الحصول على مزيد من المساعدة هنا. أحتاج إلى ترميز تطبيق صغير في Java لفصلتي التالية التي تحصل على بيانات من قاعدة بيانات Access MS (MDB) باستخدام ODBC. نظام التشغيل الخاص بي هو Windows 7 Ultimate 64bits. أعلم أن هناك ODBCAD32 في مجلد Syswow64. تمكنت من إعداد DSN هناك. لكن لا يمكنني الاتصال. التطبيق يلقي استثناء SQL. حاول اثنين من البديل ل drivermanager.getConnection ():
jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBH=E:/DB.mdb
و
jdbc:odbc:DSN_NAME
السائق هو:
sun.jdbc.odbc.JdbcOdbcDriver
تعديل
رمز الاتصال هو في الأساس ما يلي:
try {
Class.forName(driver);
db = DriverManager.getConnection(url);
}
catch(SQLException e) {
System.out.println("SQL error!");
}
catch(ClassNotFoundException e) {
System.out.println("Class not found!");
}
/تعديل
ولا يعمل. لا أعرف كيفية إصلاح المشكلة لأنني لا أعرف أين تكمن المشكلة! إذا كان سائق ODBC أو Java أو أيا كان.
إنه أمر مزعج للغاية لاستخدام WinXP الظاهري للقيام بهذه المهمة. هذا لا يمكن أن يستمر إلى الأبد.
EDIT2
فقط للتأكد: إنه يعمل على WinXP ، كما هو ضمني. :}
/edit2
سأقدر الكثير من المساعدة التي يمكنني الحصول عليها إلى هنا. : DDDDD
المحلول
لذا ، نظرًا لأن لديك بالفعل إعداد ODBC ، فقد ترغب أيضًا في التأكد من أنك تستخدم نفس برنامج تشغيل ODBC 64 بت (إذا قمت بإنشاء اتصال ODBC الخاص بك تحت ٪ windir ٪ system32 odbcad32.exe). أعلم حقيقة أنه لا يوجد برنامج تشغيل 64 بت لـ Access 2007 ، لذا في حالتي ، اضطررت إلى إنشاء اتصال ODBC 32 بت (٪ windir ٪ syswow64 odbcad32.exe) ، وخفض نسخة Java إلى 32 بت واستخدام سائق 32 بت لجعله يعمل.
أتمنى أن يساعدك هذا!