Here is an example of what I use very successfully:
CREATE SQL VIEW install_equip AS SELECT Service.cust_no, Service.order_no, Service.type_work, Service.tech_no, Service.verby, Service.verto, Service.verdate, Service.podate, Service.n1, Service.job, Service.ponum, Service.tech_name, Service.company, Service.closed, Service.sched, Service.when, Service.equip, Service.date_ord, Service.problems, Service.work, Service.dropship, Service.mail, Service.selector, Service.CreditOk FROM sys2000!service WHERE Service.equip = "A" OR (Service.equip = "K"

ORDER BY Service.date_ord, Service.order_no
STATUS.txtStatus.Value="Updating Install_Equip..."
=Set_Updateable3("install_equip"
&& Notice the last line =Set_Updateable3("install_equip"
Here is the sub proc for that update
PROCEDURE Set_Updateable3
LPARAMETERS cTablename
cTablename=ALLT(cTablename)
DBSETPROP(cTablename+".order_no", "field", "KeyField", .T.)
DBSETPROP(cTablename, "view", "WhereType", 1)
DBSETPROP(cTablename, "view", "SendUpdates", .T.)
DBSETPROP(cTablename+".cust_no", "field", "Updatable", .F.)
DBSETPROP(cTablename+".order_no", "field", "Updatable", .F.)
DBSETPROP(cTablename+".type_work", "field", "Updatable", .F.)
DBSETPROP(cTablename+".n1", "field", "Updatable", .F.)
DBSETPROP(cTablename+".job", "field", "Updatable", .F.)
DBSETPROP(cTablename+".company", "field", "Updatable", .F.)
DBSETPROP(cTablename+".creditok", "field", "Updatable", .T.)
ENDPROC