-
Jan 9th, 2010, 01:03 PM
#1
Thread Starter
Junior Member
VB.NET 2008 32bit app compatibility with 64bit systems
I'm developing my apps in VS.NET 2008 on Win XP SP2 32bit and I'm not familiar with how these applications run on 64bit systems like Vista, 7.
Do I need to build my app on 64bit system with x64 version of Visual Studio for apps to run correctly on this systems? Is there some kind of pre-build compatibility option for application to run on 64bit..?
Here's one of the problems...related to databases, on Vista 64bit app reports error "The Microsoft.Jet.OLEDB.4.0 provider is not registered on local machine"
If you understand what I'm talking about, please help.
And what are the things I must take care of when building apps (simple, only reading/writing to MS Access databases) to work on both platforms?
-
Jan 10th, 2010, 02:00 AM
#2
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Visual Studio is a 32-bit app itself, so there's no issue developing on 32- or 64-bit systems. If you compile for Any CPU then your app will run in 32-bit mode on 32-bit systems and in 64-bit mode on 64-bit systems. If you compile for x86 then your app will run in 32-bit mode on all systems. If you compile for x64 then your app will run in 64-bit mode on 64-bit systems and not at all on 32-bit systems.
There is no 64-bit version of the Jet OLEDB provider so, if you want to use Jet on 64-bit systems, you must compile for x86. The same goes for any application that uses and 32-bit-only component.
-
Jan 10th, 2010, 06:02 AM
#3
Thread Starter
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Thanks.
And what about this error "The Microsoft.Jet.OLEDB.4.0 provider is not registered on local machine", it appears on Vista..
Is this provider installed with operating system or not?
I thought that's something that comes with it...should I add some kind of component in my app Setup program to register this provider or users must download it?
I don't quite understand these system based problems.
-
Jan 10th, 2010, 07:31 AM
#4
Re: VB.NET 2008 32bit app compatibility with 64bit systems
If you run an app in 64-bit mode it will only use 64-bit libraries. There is no 64-bit version of Jet installed, hence the error message. As I said in my previous post, if you want to use Jet and run on 64-bit systems then you must compile for x86 and run in 32-bit mode.
-
Jan 10th, 2010, 09:48 AM
#5
Thread Starter
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Ok, my app i compiled in 32bit mode, and now user install it on for example Windows 7 64-bit, and before running app he must under app properties set "Compatibility mode" to Windows XP (32-bit) to be able to run it in 32-bit mode and connect to database?
I'm I right?
The problem is I cannot try this, I don't have 64-bit system, my apologize for having trouble understanding....
-
Jan 10th, 2010, 05:34 PM
#6
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Installing a 32-bit app on a 64-bit system is no different to installing a 64-bit app; you just install it as normal.
Last edited by jmcilhinney; Jan 10th, 2010 at 06:34 PM.
-
Feb 7th, 2011, 09:04 PM
#7
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
I'm having the same issue with the JET database driver not being registered, however I can not work around it with x86 as the code I'm developing is used as an AddIn in a x64 Application, thus it will only run as a x64 process.
Is there another Provider, or another work around, that will allow communications with a JET database from a x64 application?
-
Feb 7th, 2011, 11:11 PM
#8
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Originally Posted by Dawg
Is there another Provider, or another work around, that will allow communications with a JET database from a x64 application?
Yes, but it does have limitations. Office 2007 introduced various new file formats and it also introduced a new database engine to support them. The Access Connectivity Engine (ACE) was only available in 32-bit with Office 2007 but Office 2010 introduced a 64-bit edition too. If your users install the 64-bit edition of either Access 2010 or ACE 2010 (which is a free download) then 64-bit apps can use the ACE OLE DB provider to connect to any file format supported by Jet as well as all the new Office formats.
The issue is that you cannot mix and match 32-bit and 64-bit Office. If the user already has 32-bit Office installed then they would have to uninstall and install 64-bit Office. That's annoying enough but the real issue, and the reason that 64-bit Office is not very prevalent, is that 32-bit add-ins for Office will no longer work.
The answer for you is probably to ditch Access as a database and use SQL Server CE, which has no 64-bit issues, as far as I'm aware.
-
Feb 8th, 2011, 01:51 PM
#9
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Thanks for the clarification.
Too bad the x64 ACE OLE DB provider isn't available separately.
I'm trying to get several thousand points into a CAD tool and then work with them programmatically. The source data is in Excel, and the likely path into the CAD tool, which is x64, is now Excel --> JET --> Oracle --> CAD tool LOL!
And yes given time I could go from Excel into the CAD tool however being able to access the data with SELECT statements is extremely advantageous for what I need to do.
-
Feb 8th, 2011, 04:06 PM
#10
Re: VB.NET 2008 32bit app compatibility with 64bit systems
You can open Excel as an Database (using ADO.Net) and query it just like a database table also.
Sometimes the Programmer
Sometimes the DBA
Mazz1
-
Feb 8th, 2011, 05:42 PM
#11
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Ooo, that could be powerful! Ima try to make that work.
Hopefully talking to x86 Excel from a x64 application wont be problematic. We'll see.
-
Feb 8th, 2011, 07:05 PM
#12
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Originally Posted by Dawg
Ooo, that could be powerful! Ima try to make that work.
Hopefully talking to x86 Excel from a x64 application wont be problematic. We'll see.
It's ADO.NET, so it uses the Jet or ACE providers, just like Access. The same issue exists with regard to 64-bit systems, i.e. you must build a 32-bit app or use 64-bit ACE.
-
Feb 8th, 2011, 07:12 PM
#13
Junior Member
Re: VB.NET 2008 32bit app compatibility with 64bit systems
Ugh. Okay.
I wrote a separate tool to take JET into Oracle, which I can then query from my x64 AddIn. Ugly but the task is done.
Thanks for the help guys - saved time in the end...
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|