MySQL的ODBC 32与64位
问题描述:
我有一个32位应用程序,必须在使用64位版本的MySQL的Windows x64服务器上运行。
我应该使用32位ODBC驱动程序还是64位ODBC驱动程序?
或者我应该安装32位版本的MySQL吗?MySQL的ODBC 32与64位
答
我能
在Windows上安装ODBC 32位64位
有我的应用程序(32位)运行 罚款32位ODBC“反对“64位 64位Windows操作系统上的MySQL(2008 R2)
为了实现1)我必须修改随MySQL ODBC的zip包一起提供的install.bat,以考虑到必须在c:\windows\syswow64
中安装32位驱动程序的事实。
@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 "+-----------------------------------------------------+"
答
您需要安装32位SQL和ODBC驱动程序,以查看您的应用程序在32位中的方式。出于兼容性原因。
我仍在搜索,将编辑。
**编辑
要解决此问题,使用ODBC管理工具的正确版本。如果在64位操作系统上构建应用程序并将其作为32位应用程序运行,则必须使用%windir%\ SysWOW64 \ odbcad32.exe中的ODBC管理员工具创建ODBC数据源。要指示DSN的类型,您可以将“_32”添加到32位用户DSN,将“_64”添加到64位用户DSN。
**编辑
如果你想有一个解决办法,你需要使用中发现的管理工具,以创建ODBC数据源。 这在同一条链路还解释。
%windir%\SysWOW64\odbcad32.exe
谢谢贾斯汀! 我确实能够安装32位odbc并让我的应用程序运行良好。 (正如你写的odbc DSN显示在%windir%\ SysWOW64 \ odbcad32.exe中)谢谢stefano – Stefano 2010-03-05 14:41:46