我在Visual Basic 6中有一个程序,它监听ComPort并根据收到的数据生成SQL Querys。我使用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 :(得分: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 :(得分:0)
我只是修改了GTG的回答
Dim recordsAffected As Long
Call dbConn
cn.Execute SQLQueryfeld(s), recordsAffected
Debug.Print "Number of inserted rows: " & recordsAffected
您的变量SqlQueryFeild应该是insert语句,例如
Insert into table X values("df")