Hello,
Using PowerBuilder 2021 build 1288 against the PBDemoDB2021 SQLAnywhere 17 (32-bit) database, (examples table) we can demonstrate that a datawindow with just 2 columns (example_id integer and technique long varchar) where we have set the Update Properties to be "Key and Updatable Columns", the Rows Change Between Retrieve and Update DOES NOT happen if the data in the technique column is updated in datawindow A, committed, then Updated in datawindow B and committed.
We would like to know if this is a known defect, expected behaviour (that we would find very odd) and if there is any workaround for this issue.
We've attached a demo SDI application that connects to the PBDemoDB2021 database and has 2 same datawindows on it. If you retrieve both datawindows, then update the technique column in the first datawindow and commit, then change the data and update and commit in the second datawindow, the data that was entered in the 2nd datawindow overwrites whatever was entered in the first datawindow (without having the Rows changed between retrieve and update occurring).
Here are a few screenshots of what the demo application demonstrates:
Datawindow Update Properties:
Retrieve both datawindows where initial data of "technique" for example_id 0 is "No Data":
Update the data in the left datawindow and click the Update button to Update and Commit:
Update the data in the right datawindow and click the Update button to Update and Commit:
Check in ISQL what data has been committed after NOT getting a Rows changed between retrieve and update error:
As always, any insight is much appreciated.
Warm Regards,
Greg
Thanks for that Arthur. So I imagine (and I'll be sure to test this theory and will respond back with the findings) that if we manually Edit the datawindow source and change it to updatewhereclause=yes, then theoretically it should catch the rows changed between retrieve and update case.
Thank you very much for providing this very useful tidbit of information.
Warm Reagrds,
Greg
Ran an SQL Trace this AM on the SA 17 Demo DB and the trace conforms the missing WHERE clause column check.
Where as for the other DBMS I tested, even though the "updatewhereclause=no" DO source was set, it still sent the correct WHERE clause for the Long VarChar column to the DBMS server. I would like to suggest then that you open a Support Ticket for this issue against SA DBMS.
Regards .. Chris