自从使用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
并在测试时成功连接。
我确信(希望)我遗漏了一些明显的东西。有什么建议吗?
谢谢, 凯文
答案 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
别忘了......