2

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

我有一个在 XP 中运行良好的 MySql 数据库,并且已经使用了几年。在我的第一台 Windows 7 机器上,当我运行代码行打开与数据库的连接时它失败了:

MyOdbcConnection.Open()

错误是“ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。

为了尝试修复它,我从 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 时仍然出现错误。有什么建议么?

4

4 回答 4

0

显然我需要:

DRIVER={MySQL ODBC 5.2w Driver}

看起来很蹩脚。我不确定“w”是从哪里来的。

于 2012-12-03T21:34:49.607 回答
0

我在 32 位的 Windows XP Pro SP3 下使用 Visual Fox Pro 9.0

我遇到了同样的问题,但 id 不适用于:

Driver={MySQL ODBC 5.2a Driver} 或使用 Driver={MySQL ODBC 5.2w Driver}

有效!!!和:

Driver={MySQL ODBC 5.2 ANSI Driver} 或使用 Driver={MySQL ODBC 5.2 UNICODE Driver}

试试看。

于 2013-09-09T06:46:55.693 回答
0

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

%WINDIR%\syswow64\odbcad32.exe
于 2013-08-01T11:27:35.423 回答
0

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

于 2012-12-04T08:51:34.390 回答