Oops - minor clarifications below
Bingo Karen!  And it isn't as complicated (for my needs) as you suggested.  
SYS_ROWVER basically does what Emmitt suggested with triggers but all the heavy lifting is done by R:Base: it adds the SYS_ROWVER column, sets it to 1 for all rows, creates the trigger and increments SYS_ROWVER each time a col in a row is changed. So any changed row will have a SYS_ROWVER value > 1, I don't even need to compare it to the original table. woohoo!

SET AUTOROWVER ON
SET ERROR MESSAGE 2038 OFF
DROP TABLE RcvRecrd
SET ERROR MESSAGE 2038 ON
CREATE TEMP TABLE `RcvRecrd` +
 ( column defs )
SET AUTOROWVER OFF

This could be fun:
IF SYS_ROWVER > 4 THEN
  SET VAR vMsg = ('Make up your mind, woodja?')
ENDI


But I found that I need a PROPERTY TABLE RcvRecrd 'POST' in my Exit PushButton OnClick EEP in case they change a DBEdit and click the Exit button without first clicking another object (and therefore changing focus).
Having the POST in the Exit PushButton OnClick EEP precludes having to put a POST command in every DBEdit OnExit EEP.  
Interestingly, the PROPERTY TABLE RcvRecrd 'POST'in an OnRowExit table EEP _doesn't_ post the changed data or update SYS_ROWVER as I found with this code at the beginning of my Exit PushButton OnClick EEP [ not "OnExit EEP"]:
SET TRACE ON

PROPERTY TABLE RcvRecrd 'POST'  --SYS_ROWVER updates as soon as this line executes

BROWSE sys_rowver,TxnHistSeqNbr,LineNbr,BatesNbr,RcvdQty,PackNbr FROM RcvRecrd

Thanks Karen & Emmitt
Doug

[email protected] wrote:
Doug:  In addition to what Emmitt says, remember the good old sys_rowver column?   If you enable that, then you could copy the original sys_rowver value into a non-computed column in your temp table along with the regular dynamic sys_rowver column.  Then after exiting the row see if the new sys_rowver version is newer than the old saved value.   I've never tried it, but I kinda like this idea.   I could probably use this somewhere.


Karen

Reply via email to