>Muy Buenas Tardes.
>
>Como seria el codigo del metodo grabar(), cuando se modifica ó se ingresa datos en un grid.
>estoy trabajando con CURSORSETPROP("Buffering", 5).
Se graba el registro actual con TableUpdate() (también se pueden guardar múltiples registros pendientes - ver parámetros adicionales). Se anulan cambios con TableRevert().
Ejemplo:
local llExito
llExito = TableUpdate()
if not llExito
local laError(1)
aerror(laError)
MessageBox("Error al guardar", 16, "Había un error al guardar" + chr(13) + chr(10);
+ "Mensaje #" + trans(laError(1)) + " - " + laError(2))
endif
Notas:
1. Es mejor reemplazar el número 16, "icono STOP", por una constante definida. Se pueden usar las constantes en foxpro.h.
2. Los primeros dos elementos del array de errores serán el número de error, y el mensaje correspondiente. A veces conviene interceptar primero por errores específicos, por ejemplo, valores duplicados, para hacer un análisis más detallado, o reemplazar mensajes más claros que "Trigger failed", digamos.
3. Si TableUpdate() falla, normalmente es por la violación de alguna regla, como regla de campo, de registro, trigger, valor duplicado (según un índice definido como primario o candidato). También pueden haber otros problemas, típicos al trabajar con archivos, como una tabla sólo lectura, digamos - o disco lleno (cuando se guarda un registro nuevo) - pero estos casos son menos comunes.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)