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!