Hola.
Yo utilizo las rejillas s贸lo para mostrar los datos. Para modificar un registro de la rejilla, con doble click abro un di谩logo, edito sus campos, si salgo con Aceptar bloqueo y actualizo. Tambi茅n bloqueo en el momento de borrar. Algo as铆 como:
Edici贸n:
if lSave
while ! Archivo->(dbRLock())
MsgInfo("Registro bloqueado por otro usuario, pulse Enter para reintentar")
end while
...sustituyo los valores del campo por los de las variables
Archivo->(dbCommit())
Archivo->(dbRUnLock())
oBrw:refresh()
end if
Borrado:
if lConforme
while ! Archivo->(dbRLock())
MsgInfo("Registro bloqueado por otro usuario, pulse Enter para reintentar")
end while
Archivo->(dbDelete())
Archivo->(dbCommit())
Archivo->(dbRUnLock())
oBrw:refresh()
end if
Importante lo del dbCommit() para que se actualicen los datos en el disco y tambien que apertures los archivos con la cl谩usula SHARED.
Espero haberte sido de ayuda.