Posted by: Terry Phythian
I will do some more investigation regarding this issue before I eventually
log-a-bug for it ....
I have a Property Editor application that uses a table window with two
columns, Property and Value. The Value column is a drop down list cell for
which the list contents change depending on the Property they represent.
One of the Property/Value rows identifies the overal item type (eg. Normal,
Check box), for which the selected value is tested under SAM_AnyEdit to
determine whether other Property/Value rows (eg. Checked Value, Unchecked
Value) are displayed. A window function is used to implement this
processing, which basically set the ROW_Hidden flag appropriately for the
other Property/Value rows.
Up to TD 2005 PTF1 this worked fine. However, in TD 2005.1, when
SalTblSetRowFlag( ) is called to change the ROW_Hidden flag for the other
Property/Value rows, then they too then receive SAM_AnyEdit messages. These
messages weren't being sent in previous versions.
In my app, the same function was being called again within the new
processing of SAM_AnyEdit, causing an endless recursive loop, and finally
the expected SQL Windows run time error "Unrecoverable Error: The depth of
function calls and messages has exceeded the capacity of the system." is
displayed.
Of course, it's quite easy to work around this by setting/testing a sentinel
boolean variable within the SAM_AnyEdit processing to prevent the infinite
recursion. However, this is a change of behavior which is unexpected (and
undocumented?) and could cause problems in other, similar scenarios.
Has anyone else noticed this new behavior, or other changes to row flag /
column window message handling?
Terry Phythian
Reprise Consulting
Brisbane, Australia