在 VB6 中执行 ADODB 中的查询

Executing a Query in ADODB in VB6

我在 Visual Basic 6 中有一个程序,它侦听 ComPort 并根据它收到的数据生成 SQL 查询。我使用 ADODB 作为我选择的数据库 link。

目前我正在尝试这个:

' 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 上给了我一个 "This operation is not permitted on a closed object"。

dbConn 是一个 public 函数,它创建一个名为 cn 的 ADODB 连接对象 结果在函数的头部启动,代码来自 as

Dim results as New ADODB.Recordset

这里的最终目标是:执行一个 INSERT sql 语句(存储在字符串数组 SQLQueryfeld(s) 中)并得到一个 return 无论它是否成功。我也愿意接受任何其他方法,但它必须使用 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, "")

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

样本:

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

我只是修改了GTG的回答

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

你的变量 SqlQueryFeild 应该是 insert statement 例如

Insert into table X values("df")