我正在尝试将大型应用程序从Windows XP移植到Windows 7.这个应用程序必须在两个平台上并行工作,因为我有22个客户端计算机,它们都是目前的Windows XP,但随着时间的推移逐个转换到Windows 7。
我有一个可以在XP中运行良好的MySql数据库并且已经使用了几年。在我的第一台Windows 7计算机上,当我运行代码行打开与db的连接时,它失败了:
MyOdbcConnection.Open()
错误是“错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序”。
为了尝试修复它,我从MySql下载了最新的ODBC 5.2驱动程序。我下载了32位和64位的。我进入了32位和64位的ODBC数据源管理员,并为用户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 :(得分:0)
显然我需要:
DRIVER={MySQL ODBC 5.2w Driver}
似乎很蹩脚。我不确定“w”来自何处。
答案 1 :(得分:0)
添加用户,系统和文件DSN没有什么意义,因为您的代码没有使用任何一个。您正在使用通常称为“无DSN”连接的内容。如果您使用的是任何创建的DSN,则连接字符串将为“DSN = my_created_dsn”或FILEDSN = path_to_file。当您使用“DRIVER = {xxx}”时,您所做的就是告诉ODBC驱动程序管理器加载哪个驱动程序,连接字符串中的其他属性告诉驱动程序要连接的mysql数据库。您用于xxx的名称必须与驱动程序的名称完全相同,如odbc驱动程序选项卡中所示。如果您要继续这样连接,可以删除所有DSN。
答案 2 :(得分:0)
你的32位程序找不到64位odbc驱动程序。尝试在命令窗口中使用以下内容设置32位驱动程序
%WINDIR%\syswow64\odbcad32.exe
答案 3 :(得分:0)
我在Windows XP Pro SP3下使用32位
的Visual Fox Pro 9.0我遇到了同样的问题,但是ID无效:
Driver = {MySQL ODBC 5.2a Driver}或者Driver = {MySQL ODBC 5.2w Driver}
IT工作!!!用:
Driver = {MySQL ODBC 5.2 ANSI Driver}或者Driver = {MySQL ODBC 5.2 UNICODE Driver}
试试吧。