Algunas de mis experiencias con vfp y mysql, usando vfp6 y un servidor mysql 5.0 en linux:
Asignar variables, antes de cada query me aseguro que existan los valores de los campos, asignandolos a variables que se llamen como el campo, con una x al inicio
xcor = thisform.corte.value
xcan = thisform.cantidad.value
sqr = sqlexec(sqlh,’insert into base.cortes (corte, cantidad) values (?xcor, ?xcan) ̵
Asi va a ser muy dificil que se confunda con el contenido de un campo de una tabla
Igual lo hago con datos de tablas
xcor = tablatmp.corte
xcan = tablatmp.cantidad
Para las fechas tambien funciona asignar el valor asi
xfec = thisform.fecha.value
Si lo que quiero es que tome la fecha del sistema, yo le doy mas confianza a la fecha del servidor
sqr = sqlexec(sqlh,’insert into base.tabla (fecha) values (curdate()) ̵
Cuando quiero saber si un registro existe, hago un query de cualquier campo de la tabla, buscando siempre que sea el mas pequeño y luego cuento el resultado.
xcor = thisform.corte.value
sqr = sqlexec(sqlh,’select count(activo) from base.cortes where corte = ?xcor ‘,’qcortes̵
if reccount(’qcortes̵
messagebox(’registro no existe̵
else
messagebox(’registro SI existe̵
endif
Cuando requiero que me regrese el valor de un count(), max() o min(), lo compruebo antes de usarlo para asegurar que sea numerico
sqr = sqlexec(sqlh,’select max(corte) as maximo from base.cortes’,’qcortes̵
m.maxcorte = qcortes.maximo
** Comprobar si es numerico
if type(’m.maxcorte̵
‘N’
** Si no es numerico, lo convierte a numerico
m.maxcorte = val(m.maxcorte)
endif
Espero que les sean utiles estos pequeños consejos