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
install.
So I dont blame your IT department if they have gone wrong on this)
You can see this here
http://msdn2.microsoft.com/en-us/library/ms810810.aspx
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:
http://msdn2.microsoft.com/en-us/library/ms692877.aspx
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
installed.
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
linking errors.
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
accessed.
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)
Okay.
There is this MDAC security patch for Windows-64:
http://www.microsoft.com/downloads/details.aspx?familyid=1d93d9e4-2b22-4595-b8c5-643824857ec0&displaylang=en
Hope this helps
Stephen Howe
.
- References:
- Access Violation using CreateParameter
- From: gfinger@xxxxxxxxx
- Re: Access Violation using CreateParameter
- From: Stephen Howe
- Re: Access Violation using CreateParameter
- From: gfinger@xxxxxxxxx
- Access Violation using CreateParameter
- 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 ???
- Index(es):
Relevant Pages
|