R. Matthew,
dateupdate=IIF(TABLEUPDATE(.T.),TABLEREVERT(.T.),DATE())
If dateupdate is a field then you cannot assing to it with the =, you must use the REPLACE command to do this.
Function requires row or table buffering mode
This error is most commonly a result of thrying to issue an INDEX ON command, so that is the first thing I would be looking for in my code.