Running SQL Anywhere 10.0.1.3887 as main server. Have devices running Ultralite to sync with main server.
There are occasions where I want the row/column on the ultarlite DB to be over-riden with a change from main server, where the ultralite has a change pending that is newer than the server. How do you solve that?
There's no easy way. As you probably already know, the built-in behaviour is that the download would fail on detecting the conflict, and a second synchronization would be needed. The second sync would upload the changes, so the download would succeed. Running a second sync on failure might be your best option.
We have had requests to augment this behaviour with client-side conflict resolution, but have not pursued it. The introduction of conflict resolution would complicate the client, both for the developer and for individual operations (more change tracking needed, which impacts performance). Keeping the client side behaviour well-defined and efficient has been the major focus.
In 12.0.1 we did introduce "download only tables", (see here). Any committed changes to the table will be overwritten by the download. I'm not sure what happens to uncommitted changes.
answered 06 Sep '11, 14:09