2015-10-05 105 views
0

我在Visual Basic 6中有一個程序,它監聽ComPort並根據它接收到的數據生成SQL Querys。我使用ADODB作爲我選擇的數據庫鏈接。在VB6中執行ADODB中的查詢

目前我試着這樣:

' Initiate Database Connection 
    Call dbConn 
    results.Open SQLQueryfeld(s), cn 
    Debug.Print (results.GetString) 
    Debug.Print ("SQL Statement " & SQLQueryfeld(s) & " wurde erfolgreich ausgeführt") 
    results.Close 

,給了我一個「此操作是不允許一個已關閉的對象上的」在第一線Debug.Print。

dbConn是,創建一個名爲CN 結果的ADODB連接對象的公共功能被啓動的功能的代碼是從作爲

Dim results as New ADODB.Recordset 

這裏的最終目標是頭:執行INSERT SQL語句(存儲在字符串數組SQLQueryfeld(s))並獲得回報,或者不成功。我也打開其他任何方式,但它必須使用ADODB。

這裏是從同一項目其他一些代碼工作正常:

Call dbConn 

SQL = "SELECT Name FROM Personen WHERE Eintrag=" & Personalid & " " 
rs.Open SQL, cn 

If rs.RecordCount > 0 Then 
tmp_name = rs.GetString 
tmp_name = Replace(tmp_name, Chr(13), "") 
tmp_name = Replace(tmp_name, Chr(10), "") 
tmp_name = Replace(tmp_name, vbCrLf, "") 
+0

不應該使用變量賦值CN連接。嘗試刪除線電話dbconn和使用CN = dbConn – DevelopmentIsMyPassion

+0

檢查'記錄 – 2015-10-05 11:48:34

+0

之前cn.state'我必須補充,調用dbConn工作與SELECT其他類似代碼的形式,而不是INSERT語句 – Magisch

回答

0

如果你知道你的查詢是一個INSERT查詢,您可以使用Connection.Execute而不是RecordSet.Open。

樣品:

Dim recordsAffected As Long 
    Call dbConn 
    cn.Execute SQLQueryfeld(s), recordsAffected 
    Debug.Print "Number of inserted rows: " & recordsAffected 
+1

它在哪裏指定要執行哪個查詢? – Magisch

+0

對不起,代碼中的拼寫錯誤 – GTG

+0

謝謝,這顯然是這樣做的。 – Magisch

0

我只是修改GTG的回答

Dim recordsAffected As Long 
Call dbConn 
cn.Execute SQLQueryfeld(s), recordsAffected 
Debug.Print "Number of inserted rows: " & recordsAffected 

你的變量SqlQueryFeild應該例如插入語句

Insert into table X values("df")