Action Queries and ADO Objects

Action Queries and ADO Objects

Which is better to use for inserting or updating a record: Recordset object or Command object?

When using an Action Query (a query that performs an action and does not return a recordset), it is wasteful to use a Recordset object. It is much more efficient to use a Action SQL Query (INSERT, DELETE, UPDATE query) with either the Connection object or the Command object rather than use the AddNew or Update methods of the Recordset object.

So, instead of doing this:

Recordset.AddNewRecordset("FieldName") = new valueRecordset.Update

Use this:

strSQL = "Insert into TableName (Field1, Field2) " & _   " Values ( value1, value2)"objConnection.Execute strSQL

or do the same thing with the Command object’s Execute method.

To choose between the Connection or the Command object, use this rule. If the same or similar query is being executed over and over again with minor changes (parameter changes), use the Command object since it allows the database engine to cache your SQL execution plan and improve performance. If the query is only being executed once, use the Connection object’s Execute statement.


Share the Post: