FoxPro/Visual FoxPro - No Guarda en MYSQL

 
Vista:

No Guarda en MYSQL

Publicado por ramon (81 intervenciones) el 25/09/2010 16:48:18
Hola buenos dias... quisiera me ayudaran... ya que no comprendo porque no guarda en Mysql los datos que tengo....
este es mi codigo...

local guarda,actualiza

Guarda='Insert into articulos(NUM, CODEBAR, ARTICULO, ENTRADAS, PRECIOSINIVA, IVA, PRECIOCONIVA, PRECIOVENTA, PRECIOCREDITO,LINEA) values(?nNum,?cCode,?cArticulo,?nCant,?nPrecsiva,?niva,?nPrecciva,?nPrecio,?pcdto,?nLine)'
try
SQLEXEC(Con,Guarda)
Actualiza='Update articulos Set existencia=entradas-salidas'
SQLEXEC(Con,Actualiza)
endTry

**************************
ESTE ES MI CODIGO COMPLETO EN BOTON GUARDAR
*************************************
pcdto=(PRECIOVENTA)*30/100+PRECIOVENTA
LOCAL guarda,actualiza
this.backcolor= RGB(255,255,255)
THISFORM.SetAll('Enabled',.f.)
THISFORM.Refresh
IF MESSAGEBOX('Es correcto lo capturado...??',4+32,'Es correcto')=6
WITH Thisform
SELECT articulos
SET ORDER TO codebar
APPEND blank
replace num WITH nNum, CODEBAR WITH cCode, ARTICULO WITH cArticulo, ENTRADAS WITH nCant,;
PRECIOSINIVA WITH nPrecsiva, IVA WITH niva, PRECioconiVA WITH nPrecciva, preciocredito with pcdto,;
PRECIOVENTA WITH nPrecio, LINEA WITH nLine, existencia WITH entradas-salidas
Guarda='Insert into articulos(NUM, CODEBAR, ARTICULO, ENTRADAS, PRECIOSINIVA, IVA, PRECIOCONIVA, PRECIOVENTA, PRECIOCREDITO,LINEA) values(?nNum,?cCode,?cArticulo,?nCant,?nPrecsiva,?niva,?nPrecciva,?nPrecio,?pcdto,?nLine)'
try
SQLEXEC(Con,Guarda)
Actualiza='Update articulos Set existencia=entradas-salidas'
SQLEXEC(Con,Actualiza)
endTry
.Grid1.Refresh
WAIT WINDOW 'El Articulo &carticulo'+CHR(13);
+'ha sido agregado satisfactoriamente' TIMEOUT 0.5
IF MESSAGEBOX('Desea Agregar otro artículo al Catálogo..?'+CHR(13)+CHR(13);
+'Presione Si para Agregar o No Para salir',4+32+32,'Otro articulo')=6
.SetAll('Enabled',.T.)
.vaciar
.command2.Enabled=.t.
.command2.click
.Refresh
ELSE
.command1.click
Endif
EndWith
ELSE
THISFORM.SetAll('Enabled',.T.)
THISFORM.Refresh
RETURN 0
Endif


GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No Guarda en MYSQL

Publicado por xx (378 intervenciones) el 25/09/2010 19:12:57
Bueno no se puede saber que tipos de variables son las que intentas agregar a la tabla SQL pero te doy un ejemplo de como se hace:

_num=123
_str="insert into table (cadena,numero) values ('esto es una cadena',"+ALLTRIM(STR(_num))+");"
SQLEXEC( xSQLcn, _str )

obs: debes formar una cadena asi:
"insert into table (cadena,numero) values ('texto',123);"
y luego la envias al servidor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Guarda en MYSQL

Publicado por ACM (162 intervenciones) el 25/09/2010 20:14:16
Hola Ramon

Como lo estas asiendo esta bien lo mas probable es que estas superando los 255 caarcter en la variable

ejemplo

var="asdfasdfasdasdas 255 carateres"

solucion

Var="aldjkalsdjlkadjalksdjalksd"+;
"aslkdjalksdkalsdkalsdasd"

vas añadiendo por partes con +;

sqexec(xcon,var)

Saludos

Acm.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Guarda en MYSQL

Publicado por alexcoinc (450 intervenciones) el 26/09/2010 15:03:16
Buenos dias

Una inquietud !! acerca de lo de Ramón

Si voy a grabar en un servidor que posee MYSQL para que utilizo:

SELECT articulos
SET ORDER TO codebar
APPEND blank
replace num WITH nNum, CODEBAR WITH cCode, ARTICULO WITH cArticulo, ENTRADAS WITH nCant,;
PRECIOSINIVA WITH nPrecsiva, IVA WITH niva, PRECioconiVA WITH nPrecciva, preciocredito with pcdto,;
PRECIOVENTA WITH nPrecio, LINEA WITH nLine, existencia WITH entradas-salidas

QUE SON PROPIOS DE UNA TABLA NATIVA DE VISUAL FOXPRO ??

Basta creo !! y es lo que planteo (corrijanme por favor !!!)

con estas instrucciones:

Guarda='Insert into articulos(NUM, CODEBAR, ARTICULO, ENTRADAS, PRECIOSINIVA, IVA, PRECIOCONIVA, PRECIOVENTA, PRECIOCREDITO,LINEA) values(?nNum,?cCode,?cArticulo,?nCant,?nPrecsiva,?niva,?nPrecciva,?nPrecio,?pcdto,?nLine)'
try
SQLEXEC(Con,Guarda)
Actualiza='Update articulos Set existencia=entradas-salidas'
SQLEXEC(Con,Actualiza)
endTry

Eso si las anteriores cadenas concatenadas con el uso del signo ( + ) MAS ., para evitar su extensión. corrijanme otra vez por favor !

Alexcoinc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Guarda en MYSQL

Publicado por es_binario (757 intervenciones) el 26/09/2010 17:49:06
Definitivamente Coincido con Elexcoinc, - Este codigo esta muy marciano -

aqui para comenzar no entiendo el codigo de el boton guardar ya que en ningun momento se sabe cuando inserta el campo entradas y el campo salidas.

Siempre el codigo para mysql la sentencias deben ser entre comillas no entre apostrofe.

Actualiza='Update articulos Set existencia=entradas-salidas' <-- esto esta mal
Actualiza="Update articulos Set existencia=entradas-salidas'" <-- esto esta bien.

la respuesta de por que no graba esta en el faltante del try... que es el catch en el codigo jams aparece

try
... intente hacer algo
cacth
... atrapa el error y lo muestra
entry

tambien hay que ver que el tipo de datos enviados coincida con el tipo de datos que tiene mysq enteros - enteros, double - double o decimal.

pero si no entiendo por que usar append, que es de sentencias basicas foxbase en una intruccion mysql.

tambien no me parece optimo guardar precio sin iva y luego con iva, ya que el segundo es calculable.

saludos.

no me parece un codigo mysql y tampoco entiendo si estas grabando una venta o guardando un articulo nuevo, por que se supone que si vas a grabar una venta, ya esta grabado el articulo, no entiendo bien que pretende tu codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:No Guarda en MYSQL

Publicado por oduber vasquez (1 intervención) el 09/11/2014 17:53:01
buenas tardes!!! para insertar registros en mysql no necesitas el remplace ni nada por el estilo!! yo lo trabajo o inserto asi

1) primero llamo a mi funcion o metodo "conexion"
thisform.conexion
2) valido si la conexion fue exitosa
if handle > 0
3) dentro de la condicion voy a trabajar
utilizo el bloque de texto, es decir,
TEXT TO varInsert NOSHOW
INSERT tabla (cedula,nombre,sueldo)
VALUES (?thisform.txtcedula.value,?thisform.txtnombre.value,?str(Thisform.txtsueldo.value,14,2))
ENDTEX
if SQLEXCE(handle,varInsert)>0
endif
SQLDISCONNECT(Handle)
endif

?str(Thisform.txtsueldo.value,14,2) ESTA LINEA ES CUANDO SE TRABAJA CON TIPO DE DATOS DECIMALES 14,2

?str(Thisform.txtsueldo.value) ESTA LINEA CUANDO SE TRABAJA CON TIPO ENTERO.

SALUDOS Y ESPERO PODER AYUDARTE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar