我正在尝试在VB6
应用中执行查询。
这是我的代码:
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.ConnectionString = "Driver={MySQL ODBC 3.51 Driver}; Server=***; Database=***; Username=***; Password=***; Option=3"
con.Open
Dim cmd As New ADODB.Command
With cmd
.ActiveConnection = con
.CommandText = "SELECT COD_CONFIG FROM FDT_CONFIG"
.CommandType = adCmdText
End With
Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockOptimistic
我在连接字符串中隐藏了一些信息,但在我的应用中我使用了正确的值。
我可以成功打开连接,但当我尝试执行查询时,我得到:
“执行错误”2147467259(800004005)':未指定错误“
有人能告诉我哪里出错了吗?
答案 0 :(得分:1)
如果您要将Command
对象的ActiveConnection
分配给现有的Connection
对象,则必须使用Set
:
With cmd
Set .ActiveConnection = con
....
End With
它有点令人困惑,因为您还可以为ActiveConnection
属性分配字符串,ADO将为您创建临时连接。在这种情况下,您不会使用Set
,因为您只是为内在类型(字符串)分配值:
With cmd
.ActiveConnection = "Driver={MySQL ODBC 3.51 Driver}; Server=***; Database=***; Username=***; Password=***; Option=3"
...
End With
因此该属性可以多种方式使用。但是,在您的方案中,由于您要分配对象引用,因此您需要使用Set
关键字。