I am using an asynchronous disconnected recordset.
I open the recordset with the following:

sSQL = "Select D.qty,' ', D.itemtext,'$' + convert(varchar(9),d.total) 'fTotal'," & _
" D.total,D.price,D.itemid,D.pricegrp,d.STATUS,d.ID,d.LASTQTY," & _
" D.taxable,d.tax,d.optionsprice," & _
" d.parentid, d.orderno,Orders.STATUS 'ostatus',orders.userid " & _
" FROM Orderdetail D " & _
" JOIN Orders on Orders.id = D.orderno " & _
" Where D.status <> " & DELETED & " AND Orders.status = " & STATUS & " Order by D.orderno,d.parentid"
With frmMain.OrderDetailRS
.ActiveConnection = cnDiner
.CursorLocation = adUseClient 'required for indexing and disconnected recordsets
.CursorType = adOpenKeyset
.LockType = adLockBatchOptimistic
.Open sSQL, , , , adAsyncFetchNonBlocking
.MarshalOptions = adMarshalModifiedOnly
.Properties("Update Criteria") = adCriteriaTimeStamp
.Properties("Unique Catalog") = "diner"
.Properties("Unique Table") = "orderdetail"
End With


I can modify records in the recordset and perform
an updatebatch (after reconnecting). The first update is successfull with the changes being written to the underlying database just fine.
When I try a modification and update without first requerying the the database the update fails. It seems as though the first update did not reset the underlying values and I am running into a concurrency problem. There is no chance of other users affecting these records. I have tried the resync method in all of its variations to no avail. This is in a very high performance high transaction volume/speed application and requerying on every update is not a valid option.
Any suggestions would be greatly appreciated
When I try