2015-07-28 192 views
3

我試圖在VB6應用程序中執行查詢。MySQL查詢錯誤(ODBC 3.51)

這裏是我的代碼:

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)’:未指定的錯誤」

誰能告訴我,我哪裏去錯了?

回答

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關鍵字。

+0

我嘗試了你的兩個解決方案,我得到了同樣的錯誤。我已經嘗試了與本地MySQL數據庫相同的代碼,並且我沒有收到任何錯誤,我認爲這是VB6和我嘗試使用的舊MySQL數據庫之間的問題。 – ctbs1