執行非標量函式
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 語句。相反,它們應該引數化(請參閱建立引數化命令 )。