Tom,
I think the next thing to do is suspend your program before it does the TABLEUPDATE(). See what TABLEUPDATE() returns. If it's .F., use AERROR() to find out what error was returned.
The Data Environment should take care of opening the database. If your view is open, the database must be opened. It's possible that SQL Server is just rejecting the update for some reason. If that's the case, AERROR() will tell you what error message the ODBC driver returned.