RDS actively updates the bound recordset on the client. This action enables RDS to transmit changes made by the user back to the server, if requested. Although keeping the recordset in sync is often desirable, it has some unexpected side effects if the field has been calculated. For instance, the following SQL statement returns a calculated value when it converts the "pubdate" field to a "char(4)" type in order to truncate it to just the year portion of the date.
SELECT CONVERT(char(4),pubdate,112) AS pubdate FROM Title WHERE bib#=<%= nBibNo %>
If the pubdate field is bound to an editable field, like a text box in a DHTML form, RDS will fail as it attempts to update the value in the bound recordset. Since the update is disallowed, RDS effectively prevents the user from moving the focus away from the text box until the field is returned to its original value.
Developers will need to either avoid calculated values in editable databound fields, or manage the fields themselves by copying the value from the recordset into the editable field, and providing an alternate mechanism for updating the database when appropriate.