在 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")
我在 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")