ADO连接几乎可以用来执行提供程序通过SQL支持的任何数据库功能。在这种情况下,虽然使用@@ Identity或类似的SQL命令在INSERT语句之后获取键分配很有用,但不一定总是使用该函数Recordset返回的Execute值。请注意,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 Anddatabase.State= adStateOpen Then database.Close End If Exit Sub Handler: Debug.Print"Error " &Err.Number& ": " & Err.Description Resume CleanExit End Sub
请注意,发送到数据源的命令容易受到SQL注入的影响,无论是有意还是无意的。通常,不应通过串联任何类型的用户输入来创建SQL语句。而是应对其进行参数化(请参阅创建参数化命令)。