Access Database and x64 OleDB Connect
- Hi,
i've written a programm wich access an .mdb Database with OLE-DB.
Under Win x32 everything works fine
Under x64 no Database is found.
Is there no way to access an mdb Database from x64?
Answers
- There is no way to access a .mdb database from 64bit.
It has been decided to not port the Microsoft Jet Database engine to 64Bit.
Brad Rhodes
This message is provided as is....
All Replies
- There is no way to access a .mdb database from 64bit.
It has been decided to not port the Microsoft Jet Database engine to 64Bit.
Brad Rhodes
This message is provided as is.... - Hi,
I have used the vs.net 2003 oledb classes to connect to an access database successfully on my xp x64 pro laptop. I get the same errors as you when I try using the vs.net 2005 oledb classes. The only suggestion I have is to create a class library with vs.net 2003 for connecting to an access database and pass the dataset or datareader to your vs.net 2005 app.(untested)
Ken
- Hi,
Jay Harlow came up with a simplier solution. In my project complier tab press the advanced compile options button and set the target cpu to x86. That will force the program to use the 32bit drivers.
Ken- Proposed As Answer byAyoub Umoru Monday, April 27, 2009 7:28 AM
- Thx, i will give it a try.
- Hi,
First, thanks for a nice clear answer. I've been hunting for this all day. However...
WHAT?
The only 64-bit ODBC driver I've so far found is for SQLServer. My options seem to be:
1) Install 35Mb of SQLServer Express on every client PC (this is a standalone app, not networked);
2) Write my own RDBMS with compiles to 64-bit, then re-write my app to use that instead
What is the recommended way for a C++ app with a small database requirement to go?
Thanks,
Jim
Go the msdn product feed back center and make a suggestion. I feel they should have 64 bit drivers available for odbc also.
http://lab.msdn.microsoft.com/productfeedback/
- is there a way to pull this same thing off within a C# project? that option does not seem to be available under my project's settings.
Hi - I'm really hoping you can help, enlighten or point me in the right direction
I'm not technical when it comes to Access, ASP and their combination to provide web applications (dbases etc). I hope this info gives you enough information to work from (web - Access - ASP) to know where our problem lies and apologise for my lack of knowledge.
My problem is that after installing server 2003 64bit enterprise on 64bit hardware, my web designer says that they cannot get the Access (office 11 version) database to work. Access (the program) opens and the actual dbase opens within the program via remote access.
However, when we apply the new IP, swapping servers, the backend systems seem to fail to work so we cannot login for example to the web secure area
I cannot find any mention on the net to this effect where people have an incompatibility issue so I assume there is a way to allow Server 2003 Enterprise 64bit running on a 64bit architecture to run Office 2003 professional (and in particular Access).
Not knowing about ASP, is it that they do not use ASP.net v2.0?
Or does the server require setting up in a particular way to allow for everything to work together.
I hope you can help with the above in anyway as I'm pulling teeth trying to get to the bottom of why our Chinese web designers cannot get it to work - in turn making us look stupid in our clients eyes since they expected our new server online over a week ago
Thanks, Liam
As you have probably figured out there is no way to set what processor to target in an web application. Try this.
Install asp.net 2.0 32 bit version
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
Enable 32 bit applications on 64 iiscscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
When you create the asp.net application do not use the file system create the application on the local iis. In the iis manager create a new application pool for the 32bit applications. Now open the properties for the web site you created. Change the application pool to the one you just created. Click on the configuration button and change extension mappings directory from C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll to C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll for all the extensions.
Once this is done you should be able to open an access from inside a web page.
Hi Ken
I'm assuming this was primarily meant as an answer for my query for me to follow?
If so, thank you, will get them to try it and let the board know the outcome.
One thing, their using ASP and not ASP.NET, will this create delays in rewriting codes?
Ken Tucker wrote: As you have probably figured out there is no way to set what processor to target in an web application. Try this.
Install asp.net 2.0 32 bit version
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
Enable 32 bit applications on 64 iiscscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
When you create the asp.net application do not use the file system create the application on the local iis. In the iis manager create a new application pool for the 32bit applications. Now open the properties for the web site you created. Change the application pool to the one you just created. Click on the configuration button and change extension mappings directory from C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll to C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll for all the extensions.
Once this is done you should be able to open an access from inside a web page.
- Sorry I misread the question I thought it was asp.net. I am not sure how to do it for asp.
Thanks Ken
Can anyone else please advise:
1 - original Website backend uses MS Access 2003, ASP (not .NET), IIS6.0 on win2k server
2 - new server 64bit, win serv 2k3 ent 64bit, MS Access 2003, ASP (not .NET), IIS6.0 - dbase as a webpage will not open, cannot login for access to it (it opens ok within Access so the problem is not with Access 2003 or the dbase as it stands - it's with the structure to produce the dbase through the web on a x64 machine and OS)
Has anyone heard of this problem before (not ODBC related etc) - there must be someone else still using ASP to produce a simple MS Access dbase but on a server 2003 x64 machine. Please anyone?
Liam
- Sure there is...first change the Platform Target in the properties to x86. This will force it to use 32-bit...but then you will get an error about System.EnterpriseServices not being found. So you'll have to move the EnterpriseServices.dll from the:
<Windows>\Microsoft.Net\Framework\v2.0<subversion>
to the:
<Windows>\assembly directory
Turns out that only the 64-bit assembly is put into the GAC by default. That solved the problem for me.
Chris I just want to know if Microsoft change is mind and decided to port Microsoft Jet Database engine to 64bit.
I don't understand this choice. Why migrate to x64 then ? Or is there an other mean to manipulate an Access BD with a x64 application ?
Thank you
Eric
To the problem of running access mdb database its an extremely simple solution to get it to run on an x64 Windows, change IIS to run 32bit and so have access to all the 32bit drivers and registry. All the odbc drivers are still included but you just cant access them unless its a 32bit app.
Read this support article to change IIS between 32bit and 64bit : http://support.microsoft.com/kb/894435
- I just upgraded my development machine to an XP x64 setup. I checked out lots of software to be sure that I was compatible, but it didn't even cross my mind that something as widely used as Jet.OleDB might not work. I develop a LOT of tiny quick web apps which use classic ASP and MS Access specifically because of its simplicity.
Can it really be that Microsoft are not going to develop Jet.OleDB for the next generation platforms? Not everything is enterprise level and requires .NET or SQL Server so what are developers like myself supposed to do? There must be loads of us!
Does ANYONE have a workaround to this problem? I just cant believe that there is no solution for this. All the forums seem to just say that MS haven't developed the 64-bit version. Alternatives please anyone?
In advance, thankyou! - OK - I solved it. Thanks to the post previous to this I managed to switch .NET over to 32-bit mode. I didnt realise that this would also affect the classic ASP running on the machine.
Once I had done that I was able to read data from the database, but got the following error if I tried an UPDATE or INSERT.
Microsoft JET Database Engine error '80004005' Operation must use an updateable query
I then found this article: http://www.aspapp.com/content.asp?ContentID=153
This takes you through setting the permissions in IIS to let you make INSERTs etc.
All now appears to work fine. PHEW and thankyou!
Unfortunatelly this is the only solution and it works. So there's no plan from Microsoft to implement MsJet 4.0 under X64?
Ken Tucker wrote: Go the msdn product feed back center and make a suggestion. I feel they should have 64 bit drivers available for odbc also.
http://lab.msdn.microsoft.com/productfeedback/
Has anyone startet a Entry where I can vote for it?
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=123311&wa=wsignin1.0
and this one
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=90562&wa=wsignin1.0- Thanks for your post. Its really solved my problem in Windows Server 2008.


