Mira yo grabo en MYSQL obiamente es la misma cosa, en cuanto a grabaciones o actulizaciones se refiere.
Mira esta ejemplo pueda que te ayude.. saludos, es la mejor forma para grabar en Visual fox pra mi.
Saludos
Att.
Saul H.
LOCAL nSiGraba, nMensaje
nSiGraba = .T. &&Graba uno Nuevo .F. Mofidica
lcSQLcommand = ""
*- Inicia Script para Grabar y Modificar
lcSQLcommand = ""
IF nSiGraba = 1 &&Nuevo
TEXT TO lcSQLcommand NOSHOW
INSERT INTO regcancelaciones (Transaccion_can,
Regitro_can,
codAnimal_can,
FechaCancela_can,
registrador_can,
Cancelacion_can,
Notas_can,
empresa_can)
VALUES (?m.Transaccion_can,
?m.Regitro_can,
?m.codAnimal_can,
?m.FechaCancela_can,
?m.registrador_can,
?m.Cancelacion_can,
?m.Notas_can,
?xcodigoempresa) /*Codigo Publico de Empresa*/
ENDTEXT
ELSE
TEXT TO lcSQLcommand NOSHOW
UPDATE regcancelaciones SET Transaccion_can = ?m.Transaccion_can,
Regitro_can = ?m.Regitro_can,
codAnimal_can = ?m.codAnimal_can,
FechaCancela_can = ?m.FechaCancela_can,
registrador_can = ?m.registrador_can,
Cancelacion_can = ?m.Cancelacion_can,
Notas_can = ?m.Notas_can
WHERE transaccion_can = ?m.transaccion_can AND
empresa_can = ?m.empresa_can
ENDTEXT
ENDIF
*-Graba con el codigo Original
**Se Ejecuta el codigo MySQL Para Grabar
IF !EMPTY(lcSQLcommand)
cmd = SQLEXEC(CnxIfh,lcSQLcommand)
IF cmd > 0 && Intenta confirmar los cambios
WAIT WINDOW AT SROWS() / 2,(SCOLS() / 2) - 5 TIMEOUT 1 'Guardando en Base de Datos!!!'
ELSE
IF AERROR(laError)> 0
Messagebox("No guardo ningún dato se ha producido un Error: "+laError[2])
ENDIF
ENDIF
ENDIF