Re: Access Violation using CreateParameter
- From: "Stephen Howe" <stephenPOINThoweATtns-globalPOINTcom>
- Date: Wed, 27 Jun 2007 12:49:46 +0100
I should clarify that. The version of MDAC on the x64 machine is later
than the version of MDAC on the win32 machine. There is a Common Files
\System\ado folder in both Program Folders and Program Folders (x86),
presumably this is what came installed on the machine in the first
place since I can't be sure since IT handled the basic setup. In both
locations the file version is 2.82.3959.0
Doesnt matter. TTBOMK (To the best of my knowledge) the important point is
there is _NO_ 32-bit MDAC that works for Win64.
Instead it comes up pre-installed with its own version MDAC which is 2.8.
On no account should the Win32 MDAC's, any version, be installed on Win64
The only rider to this would be if Microsoft specifically endorse a MDAC as
Win64-compatible and so far they have not.
So if your IT has gone ahead and installed a MDAC designed for Win32 on your
Win64 machine, then that is an error.
(In some senses this is Microsofts fault.
If a version of MDAC is designed for various versions of Windows, it should
reject those flavours of Windows it was not designed for;
or at the very least, give a warning with the option of continuing to
So I dont blame your IT department if they have gone wrong on this)
You can see this here
where it says
MDAC 2.8: This version of MDAC is included with Windows Server 2003 and
Windows XP SP2 and later.
The 32-bit version of MDAC 2.8 will also be released to the MDAC Web site at
the same time Windows Server 2003 is released to the customer.
The 64-bit version of MDAC 2.8 will release with the 64-bit version of
Windows Server 2003 only.
So installing 32-bit MDAC on Win64 is an error.
Also see this FAQ here:
where it says:
Why am I having intermittent problems with my C++ application that uses ADO
components when it runs under 64-bit Windows?
When you compile C++ applications that import msado15.dll, make sure that
the 64-bit version of msado15.dll is referenced and not the 32-bit version.
This detail might not be immediately obvious for the following reasons:
Many developers must build their 64-bit applications on computers that run
under 32-bit Windows operating systems.
These computers typically do not have the 64-bit version of msado15.dll
When you build a 64-bit application that is referencing the 32-bit version
of msado15.dll, the Visual C++ compiler does not return any compile or
In fact, frequently, your application might appear to work. Occasionally,
your 64-bit application might encounter misaligned data.
This causes memory access violations when certain ADO properties are
To avoid this issue, you can copy the 64-bit version of msado15.dll from the
Windows installation media to any 32-bit computers that you use to develop,
build, or test your application and make sure that you use that version when
you compile your 64-bit application.
The hotfix I mentioned is for Windows Server 2003, which I understand
is the basis of Win XP Pro x64, which is my current OS, but I did not
install the hotfix because it did not specifically say is was for XP
x64 and because the file version was wrong in any case (2.82.2589.0)
There is this MDAC security patch for Windows-64:
Hope this helps
- Prev by Date: Re: appendChunk method resulting in incorrect data
- Next by Date: Re: Table adapter ???
- Previous by thread: Re: Access Violation using CreateParameter
- Next by thread: Re: Table adapter ???