执行非标量函数

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 语句。相反,它们应该参数化(请参阅创建参数化命令 )。