none
JDBC connectivity error with MS Access 2010 RRS feed

  • Question

  • Hi and Greetings,

    I am new to these forums, so if I submitted this to the wrong forum, my apologies.

    Before I get to my question, a little backstory.  I was running an application on my laptop that was using Microsoft Vista, with Microsoft Office 32 bit and JRE 1.5.  I could connect to the MS Access database with no problems, I dont think I even had to specify the data source (I wish I could elaborate further, but the code works on that computer, so I didn't ask questions or dig into it farther).  That was about 4 years ago...

    The connection code that was working without a data source in this old environment looked something like the following:

    try {
                //set up the JDBC/ODBC bridge
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                //Set path to database
                String filename = "<location>/<databaseName>.mdb";
                String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
                database+= filename.trim() + ";DriverID=22;READONLY=true}";
                //Now we can get our database connection
                Connection con = DriverManager.getConnection( database ,"","");
                return con;
               
            }

    I recently bought a new computer with Windows 7.  I installed 32 bit Microsoft Office, including 32 bit MS Access.  I installed Eclipse with Java 1.6...64-bit I believe.  I ported the same application I mentioned above over onto this new computer and tried running it and was getting a "Driver error that no data source was specified"  I'm paraphrasing the error there.  Next, I figured I would try to set up a driver/data source, but was unable to do so from the usual route thru the Control Panel.  I then attempted the 32 bit driver route and was able to do so successfully.

    When I run my code above with or without the datasource, I get the "Data Source name not found and no default driver specified" error.

    When I change the code above to the following:

    try {
                //set up the JDBC/ODBC bridge
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                //Set path to database
                String database = "jdbc:odbc:<databaseName>";
                //Now we can get our database connection
                Connection con = DriverManager.getConnection( database ,"","");
                return con;
               
            }

    and I run the application, I am getting the "specified DSN contains an architecture mismatch between Driver and Application error".

    From everything I am reading, it looks like my solutions might be one of the following: a) download 64 bit drivers to match the 64 bit JRE I installed of b) use a 32 bit version of the JRE within my development environment.

    Are those really my only options?

    And if those are my only options, can I install/run 64 bit drivers and use a 64 bit driver for Access when all I have is a 32 bit version of that application?

    Additionally/Lastly: Can I run a 32 bit version of the JRE on a 64 bit OS without any issues/problems?

    Even as a developer, this sort of thing isn't really my forte so any help would be very appreciated.

     

    Thanks!

    • Moved by Bruce Song Wednesday, January 18, 2012 6:31 AM related with java, out of support scope (From:Access for Developers)
    Saturday, January 7, 2012 1:59 AM

All replies