2012-12-03 96 views
2

我想将一个大型应用程序从Windows XP移植到Windows 7.此应用程序必须在两个平台上并排工作,因为我有22个客户端计算机,它们都是Windows XP,但它们都将随着时间的推移逐一转换到Windows 7.MySql ODBC Windows XP到Windows 7

我有一个MySql数据库,在XP中工作正常,并已数年。 )

MyOdbcConnection.Open(

的错误是“ERROR [IM002] [微软] [ODBC:在我的第一个Windows 7的机器,当我运行的代码行打开到数据库的连接失败驱动程序管理器]未找到数据源名称并且未指定默认驱动程序“。

要尝试修复它,我从MySql下载了最新的ODBC 5.2驱动程序。我下载了32位和64位的。我进入ODBC数据源管理器,为32位和64位,并成功添加我的数据源为这个数据库的用户DSN,系统DSN和文件DSN。我也可以成功地从MySql工作台连接到数据库。

这是我的连接字符串。除了使用5.1驱动程序之外,它与其他工作机器相同。

Dim MySqlConString As String = "DRIVER={MySQL ODBC 5.2 Driver};" & _ "SERVER=myserver;" & _ "DATABASE=mydb;" & _ "UID=root;" & _ "PASSWORD=mypw;" & _ "OPTION=3" – Jason Shoulders 3 hours ago 

尽管能够添加数据源并通过工作台连接到数据库,但我在运行我的exe时仍然出现错误。有什么建议么?

+0

呃...工作台不使用ODBC,它使用本机协议。你的DSN字符串是什么样的? –

+0

这是我的连接字符串。除了使用5.1驱动程序之外,它与其他工作机器相同。 Dim MySqlConString As String =“DRIVER = {MySQL ODBC 5.2 Driver};” &_ “SERVER = myserver;” &_ “DATABASE = mydb;” &_ “UID = root;” &_ “PASSWORD = mypw;” &_ “OPTION = 3” –

+0

你在用什么语言? –

回答

0

显然,我需要有:

DRIVER={MySQL ODBC 5.2w Driver} 

似乎跛。我不确定“w”是从哪里来的。

+0

http://www.connectionstrings.com/mysql#mysql-connector-odbc-5-1'驱动程序的'64位版本'标题 – Jesse

+0

@Jesse“w”并不意味着64位。它是驱动程序的Unicode版本。使用MySQL ODBC驱动程序的5.2行版本,它们具有Ansi和Unicode版本(请参阅[这里](http://dev.mysql.com/doc/refman/5.6/en/connector-odbc-versions.html))。因此,驱动程序名称相应地是“MySQL ODBC 5.2a驱动程序”和“MySQL ODBC 5.2驱动程序”。 Ansi和Unicode都可用于32位和64位版本。 – nextgentech

0

添加用户,系统和文件DSN是没有意义的,因为您的代码没有使用任何代码。您正在使用通常称为“无DSN”连接的内容。如果您使用任何已创建的DSN,则连接字符串将为“DSN = my_created_dsn”或FILEDSN = path_to_file。当您使用“DRIVER = {xxx}”时,您所做的只是告诉ODBC驱动程序管理器加载哪个驱动程序,连接字符串中的其他属性告诉驱动程序需要连接的mysql db。您用于xxx的名称需要与odbc驱动程序选项卡中显示的驱动程序的名称完全相同。如果您要继续这样连接,您可以删除所有的DSN。

0

您的32位程序不会找到64位odbc驱动程序。尝试设置了以下32位驱动程序在命令窗口中

%WINDIR%\syswow64\odbcad32.exe 
0

我使用Visual福克斯临9.0在Windows XP专业版SP3与32位

我有同样的问题,但ID没有工作搭配:

驱动程序= {MySQL的ODBC驱动5.2A】或与驱动程序= {MySQL的ODBC驱动程序5.2瓦特}

IT工作!用:

驱动= {MySQL的ODBC 5.2 ANSI驱动}或与驱动器= {MySQL的ODBC 5.2 UNICODE驱动}

尝试。