That still won't work. The problem here is that a transaction can have one and *only one* firehose cursor open at a time. A firehose cursor is a forward-only cursor with a read-only lock. That is the default type of cursor returned by the Connection.Execute() function - as an ADO recordset (the mode is adOpenForwardOnly and the LockType is adLockReadOnly). Try this:Dim rs1 as new ADODB.RecordsetDim rs2 as new ADODB.RecordsetoConn.BeginTransrs1.Open strQuery1, oConn, adOpenStatic, adLockReadOnlyrs2.Open strQuery2, oConn, adOpenStatic, adLockReadOnlyoConn.CommitTrans
While firehose cursors are great for simple readonly procedures as they are fast and use very little resources, they can complicate issues such as transactions and connection pooling since a connection can have only one firehose cursor open at any time.OS