尝试使用DSN连接到MySql时出错

时间:2013-08-13 12:52:57

标签: mysql vb6 odbc dsn

自从使用VB6以来我已经很长时间没有使用MySql或DSN连接,但我正在研究使用这些连接的遗留应用程序。当我尝试打开连接时,我得到了一个 Data source not found and no default driver specified使用此代码

Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim sql As String

Set rs = New ADODB.Recordset
Set cmd = New ADODB.Command
Set conn = New ADODB.Connection

conn.Open "DSN=AddressHealthcheck" '<- Fails on this statement

我也尝试在conn.ConnectionString中指定DSN,但会收到相同的错误。

本地系统DSN中存在AddressHealthcheck,使用MySql ODBC 5.1 Driver并在测试时成功连接。

我确信(希望)我遗漏了一些明显的东西。有什么建议吗?

谢谢, 凯文

4 个答案:

答案 0 :(得分:0)

rags评论(上图)不是解决方案,但它肯定有助于追踪它。

使用完整连接字符串时,错误消息不同且更有用,驱动程序无法加载。

问题似乎是因为我在64位机器上它是64位驱动程序。 VB6不能使用64位驱动程序,并且32位驱动程序不会出现在64位计算机上的ODBC连接管理器中。

DSN不是我机器中的选项。

答案 1 :(得分:0)

我使用存储在UDL中的无DSN的ODBC。它基本上是一个带有连接字符串的文件。也许连接字符串是有用的。这是一个例子:

[oledb]
; Everything after this line is an OLE DB initstring
Provider=MSDASQL.1;Persist Security Info=True;Extended Properties="Driver=MySQL ODBC 5.1 Driver;SERVER=mysqlsvr;UID=userid;PWD=password;DATABASE=mydatabase;PORT=3306;OPTION=18475";Initial Catalog=mydatabase

答案 2 :(得分:0)

64位系统中有两个ODBC管理工具。运行32位版本。或者更好的是删除ODBC并获取MySQL的OLEDB提供程序。

答案 3 :(得分:0)

我是在1个劳动节(昨天)研究这个。今天,我已经意识到我昨天遇到的一些错误,以便让它发挥作用。

Dim conexion As New ADODB.Connection

conexion.ConnectionString =&#34; DSN = yourDsnName&#34; conexion.open

别忘了......

  1. 在mysql服务器中创建一个具有所需权限的用户。
  2. 将服务器的名称或IP分配给它将连接到mysql的位置
  3. 使用正确的测试选项在客户端计算机上创建您的dsn。