J'ai une application 32 bits qui doit fonctionner sur un serveur Windows x64 en utilisant une version 64 bits de MySQL.
Dois-je utiliser un pilote ODBC 32 bits ou un pilote ODBC 64 bits?
Ou devrais-je également installer une version 32 bits de MySQL?MySQL ODBC 32 vs 64 bits
Répondre
j'ai pu
installer ODBC 32 bits sur Windows 64 bits
ma demande d'inscription (32 bits) en cours d'exécution bien avec ODBC 32 bits " contre » 64 bits MySQL sur Windows 64 bits OS (R2 2008)
Pour réaliser 1) j'ai dû modifier install.bat fourni avec le paquet zip de MySQL ODBC pour prendre en compte le fait que le pilote 32 bits doit être installé en c:\windows\syswow64
.
@ECHO OFF
REM #########################################################
REM
REM \brief Install myodbc.
REM
REM This exists for those working with the Windows source
REM distribution.
REM
REM \sa README.win
REM
REM #########################################################
SET installdir=none
IF EXIST %windir%\system\nul SET installdir=%windir%\system
IF EXIST %windir%\system32\nul SET installdir=%windir%\system32
REM ****************************
REM * check syswow64 folder too ...
REM ****************************
IF EXIST %windir%\syswow64\nul SET installdir=%windir%\syswow64
IF %installdir%==none GOTO :doError5
IF "%1"=="1" GOTO :doDebug
IF "%1"=="0" GOTO :doNormal
GOTO doSyntax
:doNormal
REM ****************************
REM * syswow64 must be specified
REM ****************************
IF EXIST %installdir%\myodbc3i.exe GOTO :doError4
REM ****
REM * Find out the bin/lib directory, or use default
REM ****
SET libdir=lib
SET bindir=bin
IF EXIST lib\release\myodbc3.lib SET libdir=lib\release
IF EXIST lib\relwithdebinfo\myodbc3.lib SET libdir=lib\relwithdebinfo
IF EXIST bin\release\myodbc3i.exe SET bindir=bin\release
IF EXIST bin\relwithdebinfo\myodbc3i.exe SET bindir=bin\relwithdebinfo
REM ****
REM * Copying myodbc libraries and executables to install dir...
REM ****
IF NOT EXIST %bindir%\myodbc3c.exe GOTO :doError2
IF NOT EXIST %libdir%\myodbc3.lib GOTO :doError2
IF NOT EXIST %libdir%\myodbc3S.lib GOTO :doError2
IF NOT EXIST %bindir%\myodbc3i.exe GOTO :doError2
IF NOT EXIST %bindir%\myodbc3m.exe GOTO :doError2
copy %libdir%\myodbc3S.dll %installdir%
copy %libdir%\myodbc3S.lib %installdir%
copy %libdir%\myodbc3.dll %installdir%
copy %libdir%\myodbc3.lib %installdir%
copy %bindir%\myodbc3i.exe %installdir%
copy %bindir%\myodbc3m.exe %installdir%
copy %bindir%\myodbc3c.exe %installdir%
copy doc\*.hlp %installdir%
REM ****
REM * Registering driver...
REM *
REM * We can do this with myodbc3i.exe or the MS Windows ODBCConf.exe. It
REM * may be safer to use the ODBCConf.exe when we think about such things
REM * as 64bit windows.
REM ****
REM ****************************
REM * syswow64 must be specified
REM ****************************
%installdir%\myodbc3i -a -d -t"MySQL ODBC 3.51 Driver;DRIVER=%installdir%\myodbc3.dll;SETUP=%installdir%\myodbc3S.dll"
GOTO doSuccess
:doDebug
REM ****
REM * Find out the bin/lib directory, or use default
REM ****
SET libdir=lib
IF EXIST lib\debug\myodbc3d.lib SET libdir=lib\debug
IF NOT EXIST %libdir%\myodbc3d.lib goto doError3
IF NOT EXIST %libdir%\myodbc3E.lib goto doError3
IF NOT EXIST %installdir%\myodbc3i.exe goto doError1
REM ****
REM * Copying myodbc debug libraries to install dir...
REM ****
copy %libdir%\myodbc3E.dll %installdir%
copy %libdir%\myodbc3E.lib %installdir%
copy %libdir%\myodbc3d.dll %installdir%
copy %libdir%\myodbc3d.lib %installdir%
REM ****
REM * Registering driver...
REM ****
REM ****************************
REM * syswow64 must be specified
REM ****************************
%installdir%\myodbc3i -a -d -t"MySQL ODBC 3.51 Driver (debug);DRIVER=myodbc3d.dll;SETUP=myodbc3E.dll"
goto doSuccess
:doSuccess
ECHO "+-----------------------------------------------------+"
ECHO "| DONE |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| Hopefully things went well; the Connector/ODBC |"
ECHO "| files have been copied to the system directory |"
ECHO "| and the driver has been registered. |"
ECHO "| |"
ECHO "| Connector/ODBC is ready to use. |"
ECHO "| |"
ECHO "| The most common thing to do next is to go to the |"
ECHO "| Control Panel and find the ODBC Administrator - |"
ECHO "| then use it to create a Data Source Name (DSN) |"
ECHO "| so you (and your application) can connect to a |"
ECHO "| MySQL server. |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
EXIT /B 0
:doError1
ECHO "+-----------------------------------------------------+"
ECHO "| ERROR |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| The non-debug version of Connector/ODBC needs to be |"
ECHO "| installed. |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
PAUSE
EXIT /B 1
:doError2
ECHO "+-----------------------------------------------------+"
ECHO "| ERROR |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| Connector/ODBC not built. Consider executing |"
ECHO "| Build.bat. |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
PAUSE
EXIT /B 1
:doError3
ECHO "+-----------------------------------------------------+"
ECHO "| ERROR |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| Connector/ODBC (debug) not built. Consider executing|"
ECHO "| Build.bat. |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
PAUSE
EXIT /B 1
:doError4
ECHO "+-----------------------------------------------------+"
ECHO "| ERROR |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| Existing Connector/ODBC installed. Request ignored. |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
PAUSE
EXIT /B 1
:doError5
ECHO "+-----------------------------------------------------+"
ECHO "| ERROR |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| Can't find the Windows system directory |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
PAUSE
EXIT /B 1
:doSyntax
ECHO "+-----------------------------------------------------+"
ECHO "| Install.bat |"
ECHO "+-----------------------------------------------------+"
ECHO "| |"
ECHO "| DESCRIPTION |"
ECHO "| |"
ECHO "| Use this to copy the driver and supporting files |"
ECHO "| to the system directory and register the driver. |"
ECHO "| |"
ECHO "| You can not properly install the debug version |"
ECHO "| without first installing the regular version. |"
ECHO "| |"
ECHO "| SYNTAX |"
ECHO "| |"
ECHO "| Install <debug> |"
ECHO "| |"
ECHO "| <debug> must be; |"
ECHO "| 0 - to install a regular build |"
ECHO "| 1 - to install a debug version |"
ECHO "| |"
ECHO "+-----------------------------------------------------+"
Vous devez installer un pilote SQL et ODBC 32 bits vu que votre application est en 32 bits. Pour des raisons de compatibilité.
Je suis toujours en train de chercher, je vais modifier.
** EDIT
Pour contourner ce problème, utilisez la version appropriée de l'outil Administrateur ODBC. Si vous générez puis exécutez une application en tant qu'application 32 bits sur un système d'exploitation 64 bits, vous devez créer la source de données ODBC à l'aide de l'outil Administrateur ODBC dans% windir% \ SysWOW64 \ odbcad32.exe. Pour indiquer le type de DSN, vous pouvez ajouter "_32" aux DSN utilisateur 32 bits et "_64" aux DSN utilisateur 64 bits.
** EDIT
Si vous voulez avoir une solution de contournement, vous devez vous créer source de données ODBC à l'aide de l'outil Admin trouvé dans. Ceci est expliqué également dans le même lien.
%windir%\SysWOW64\odbcad32.exe
merci Justin! J'ai en effet été capable d'installer 32bit odbc et de faire fonctionner mon application correctement. (comme vous l'avez écrit le DSN odbc est montré dans% windir% \ SysWOW64 \ odbcad32.exe) merci stefano – Stefano