VFP 9 y MySQL... Almacenar datos

Buenas tardes amigos, nuevamente por acá, regreso con un pequeño problema posiblemente de sintaxis, no sabría que es... El mismo surge cuando intento solo cargar un formulario en el cual tengo un botón de ingresar datos a una bd... Trabajo con VFP 9.0 y BD MySQL... La linea es la siguiente
X=SQLEXEC(CONEXION,'INSERT INTO PRODUCTO (codi_prod,desc_prod,depo_prod,ubic_prod,prov_prod,cost_prod,prec_mayo_prod,prec_deta_prod,max_desc_prod,exis_prod,foto_prod);
VALUES (?codi,?desc,?depo,?ubic,?prov,?cost,?prec_mayo,?prec_deta,?max_desc,?exis,?foto)')
El error que sale es el siguiente -El comando contiene una frase o palabra clave no reconocida- ... Y el código completo es el siguiente:
codi=THISFORM.txtcodigo.VALUE
desc=THISFORM.txtdescripcion.VALUE
depo=THISFORM.txtdeposito.VALUE
ubic=THISFORM.txtubicacion.VALUE
prov=THISFORM.txtproveedor.VALUE
cost=THISFORM.txtcosto.VALUE
prec_mayo=THISFORM.txtmayor.VALUE
prec_deta=THISFORM.txtdetal.VALUE
max_desc=THISFORM.txtdescuento.VALUE
exis=THISFORM.txtcantidad.VALUE
foto=thisform.txtfoto.Value
X=SQLEXEC(CONEXION,'INSERT INTO PRODUCTO (codi_prod,desc_prod,depo_prod,ubic_prod,prov_prod,cost_prod,prec_mayo_prod,prec_deta_prod,max_desc_prod,exis_prod,foto_prod);
                     VALUES (?codi,?desc,?depo,?ubic,?prov,?cost,?prec_mayo,?prec_deta,?max_desc,?exis,?foto)')
IF X>0
  MESSAGEBOX("Producto ingresado correctamente")
  THISFORM.INIT
ELSE 
  messagebox("error")
Endif
La idea es guardar esas 11 variables en una BD en MySQL... Espero no ser molestia... Gracias por su ayuda

1 Respuesta

Respuesta
1
Sabes de pronto podrías intentar lo siguiente armar la cadena insert aparte osea más o menos así :
cadena = "INSERT INTO PRODUCTO (codi_prod,desc_pro) VALUES(" + alltrim(str(codi)) + ",'" + alltrim(desc) + "')"
Sqlexec(conexión, cadena)
Nada amigo experto... Sale un error de argumento o algo así... lo cambie a esta manera usando su idea de la cadena y no me sale error al cargar como antes, pero no guarda
guardarproducto= "'INSERT INTO PRODUCTO (codi_prod); VALUES(codi)'"
X=sqlexec(conexion,guardarproducto)
IF X>0
  MESSAGEBOX("Producto ingresado correctamente")
  thisform.init
ELSE 
  messagebox("error")
Endif
Donde guardarproducto es la cadena donde tengo la sentencia... Pero cuando hace el chequeo con el if me tira un el mensaje de error indicando que no se hizo nada, y efectivamente así es, corre todo pero no guarda nada...
Para ser mas especifico con la linea q me diste para probar el error exacto q muestras es - El valor, tipo o numero de argumentos no es valido para la funcion - <span style="white-space: pre;"> </span>
<span style="white-space: pre;">
</span>
Tu cadena debería quedar así :
guardarproducto= "INSERT INTO PRODUCTO (codi_prod) VALUES(" + alltrim(str(codi)) + ")"
Eso asumiendo que la variable CODI es numérica porque en caso de ser carácter debería quedar así tu cadena :
guardarproducto= "INSERT INTO PRODUCTO (codi_prod) VALUES('" + alltrim(codi) + "')"
Debes observar muy bien la ubicación de la comilla simple ademas en tu cadena habías ubicado un ; antes del value y eso también te genera un error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas