0

使用 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

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

AddressHealthcheck存在于本地System DSN中,经测试使用并MySql ODBC 5.1 Driver连接成功。

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

谢谢,凯文

4

4 回答 4

0

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

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

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

DSN 在我的机器中不是一个选项。

于 2013-08-13T13:23:33.767 回答
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
于 2013-08-13T14:48:07.510 回答
0

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

于 2013-08-13T16:20:22.680 回答
0

我在 1 个工作日(昨天)之前正在研究这个。今天我已经意识到我昨天为了让它工作而犯了一些错误。

Dim conexion 作为新的 ADODB.Connection

conexion.ConnectionString = "DSN = yourDsnName" conexion.open

别忘了...

  1. Create a user in your mysql server that has all the priviledges you need.
  2. Assign the server's name or ip from where it is going to connect to mysql
  3. Create your dsn on the client machine with the correct options en test it.
于 2015-09-02T16:37:19.097 回答