Microsoft KB Archive/245358

= FIX: Update Resync Property Not Persisted Properly with XML Format =

Article ID: 245358

Article Last Modified on 11/5/2003

-

APPLIES TO


 * Microsoft Data Access Components 1.5
 * Microsoft Data Access Components 2.0
 * Microsoft Data Access Components 2.1

-



This article was previously published under Q245358



SYMPTOMS
The Update Resync dynamic property cannot be persisted properly when the Recordset object is saved in Extensible Markup Language (XML) format in releases of Microsoft Data Access Components (MDAC) prior to 2.5. It only works when the recordset is persisted in Advanced Data TableGram (ADTG) format.



CAUSE
The only property that persists properly (in versions of MDAC prior to 2.5) is the UpdateCriteria rowset property. Update Resync is never persisted.



RESOLUTION
The following sample code fails in versions of MDAC earlier than 2.5. Run the code in a new Microsoft Visual Basic project to verify the behavior:

Note You must change User ID= and password= to the correct values before you run this code. Make sure that User ID has the appropriate permissions to perform this operation on the database. Private Sub Command1_Click Dim rs As New Recordset Dim cn As New Connection Dim var As Variant Dim var2 As Variant Dim rs2 As New Recordset

cn.CursorLocation = adUseClient cn.Open "Provider=SQLOLEDB.1;server=RoseValley;database=test;uid=;password=   rs.Open "select * from testident", cn, adOpenKeyset, adLockBatchOptimistic, -1

rs.Properties("Update Resync") = adResyncUpdates Debug.Print rs.Properties("Update Resync")

If Dir("C:\test.xml") <> "" Then Kill "C:\test.xml"

rs.Save "C:\test.xml", adPersistXML

rs2.Open "C:\test.xml",, , , -1 Debug.Print rs2.Properties("Update Resync")

End Sub



STATUS
This problem was corrected in MDAC version 02.50.00.3917.



MORE INFORMATION
The Update Resync property specifies whether the UpdateBatch method is followed by an implicit Resync method operation, and if so, the scope of that operation. This property sets or returns one of the following CEResyncEnum values:


 * adResyncNone
 * adResyncAutoIncrement
 * adResyncConflicts
 * adResyncUpdates
 * adResyncInserts
 * adResyncAll

