• Advertisement
Sign in to follow this  

Going 64-bit, can't use Jet4 any more :(

This topic is 729 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

 

The application that I'm building so far hasn't been platform-specific (i.e. Win32/Win64), however I am now severely limited by 32-bit memory addressing (due to loading in a huge bitmap at startup, and creating a similarly-sized background bitmap in RAM). I have flicked my project over to x64, however the Jet 4.0 Access connection (whereby at runtime I can fire SQL queries to a local Access database to obtain datasets) no longer works. I have Googled that Ace12 could be a replacement, however I do not have this installed on my system.

 

My solution needs to be compatible out-of-the-box with x64 platforms, and so what is the best way for me to continue querying my database? I'd rather avoid requiring users to download extra software to get my project working.

 

 

Share this post


Link to post
Share on other sites
Advertisement
If Ace12 (or other alternative libraries) is not a viable path, you could separate the data access layer to its own process, and use some kind of inter-process communication mechanism to call it.

Windows offers several options for this; RPC, TCP or UDP (sockets), named pipes and shared memory files come to mind immediately. All of these allow 32- and 64-bit processes to communicate with each other.

Share this post


Link to post
Share on other sites

 


I have Googled that Ace12 could be a replacement, however I do not have this installed on my system.
Install it then?

 

 

As I said, I'd rather avoid having the end users who download my application have to do the same. I'm looking for a solution (if one exists) that uses existing Win64 data access functionality.

Share this post


Link to post
Share on other sites

Have you thought about SQLLite?  It would just be some dependencies you supply with your package which I'm pretty sure you are already doing with Jet.

Edited by stupid_programmer

Share this post


Link to post
Share on other sites

As I said, I'd rather avoid having the end users who download my application have to do the same. I'm looking for a solution (if one exists) that uses existing Win64 data access functionality.
 

Ship it with the application. Afaik MS provides "redistributables" to install dependencies like those (ie, MSVC runtime, D3D, .NET update, etc). Don't you have to do the same with Jet 4?

Edited by TheChubu

Share this post


Link to post
Share on other sites

If you've not enabled it already, set the /LARGEADDRESSAWARE linker flag, and you'll have 4GB of address space when running on 64-bit Windows in your 32-bit program.

 

If you're using C# there's some instructions for setting it at: http://stackoverflow.com/questions/2597790/can-i-set-largeaddressaware-from-within-visual-studio

Edited by Adam_42

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement