We have a customer who is running a proprietary application, that they want to extract some data from so they can display it on a Web site. The application has an export capability that writes the needed data to a MS Access .MDB file.
We wrote a simple program, using MS's JET drivers, that simply copied the relevant tables to a SqlServer database, where another program would run queries against them to collect what was needed. This worked fine for a number of years.
Then the vendor updated their proprietary application, and while the .MDB files look the same, and display the correct data when viewed in MS Access, what we are getting in our program when we pull records with the JET drivers is corrupt. It sometimes looks like the field alignments are wrong - a numeric field that should contain 23.40 will contain .23, I'm getting dates in the 2150's, etc.
My program, running on my machine, processing the same file works correctly. The same program, running on the servers where it needs to run, reads corrupt data.
I noticed that the version of the JET driver - msjetoledb40.dll - is higher, and the date newer, on my Windows 7 box, than on any of the servers we've tried it on. so I thought it might be a problem with an out-of-date driver. Unfortunately, the latest version of the JET drivers that is available is SP 8.0, which is the version we had installed, and which isn't working. Later versions are only available with OS installs.
So:
Is there any way of getting and installing more current JET drivers?
Are we being mislead by the version differences in the JET drivers? Is there something else that could be causing the problem, that we should be looking at?
Is there some other means or tool of extracting data from a MS Access .MDB file? (Note - this is a password-protected file, so we'd need a tool that could handle that).