执行非标量函数
ADO 连接可用于执行提供程序通过 SQL 支持的几乎任何数据库功能。在这种情况下,并不总是需要使用 Execute
函数返回的 Recordset
,尽管它可以在使用 @@ Identity 或类似 SQL 命令的 INSERT 语句之后获取键分配。请注意,为简洁起见,下面的示例使用了 “建立与数据源连接的示例”中的 OpenDatabaseConnection
函数。
Public Sub UpdateTheFoos()
On Error GoTo Handler
Dim database As ADODB.Connection
Set database = OpenDatabaseConnection(SomeDSN)
If Not database Is Nothing Then
Dim update As ADODB.Command
Set update = New ADODB.Command
'Build the command to pass to the data source.
With update
.ActiveConnection = database
.CommandText = "UPDATE Table SET Foo = 42 WHERE Bar IS NULL"
.CommandType = adCmdText
.Execute 'We don't need the return from the DB, so ignore it.
End With
End If
CleanExit:
If Not database Is Nothing And database.State = adStateOpen Then
database.Close
End If
Exit Sub
Handler:
Debug.Print "Error " & Err.Number & ": " & Err.Description
Resume CleanExit
End Sub
请注意,发送到数据源的命令容易受到 SQL 注入的攻击,无论是有意还是无意。通常,不应通过连接任何类型的用户输入来创建 SQL 语句。相反,它们应该参数化(请参阅创建参数化命令 )。