FoxPro/Visual FoxPro - insertar dato de un form a mysql

   
Vista:

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 12/05/2015 16:21:13
buenos dias a todos,

he estado intentando insertar datos de un form a una tabla de mysql, pero me muestra error, aqui expongo el codigo que estoy usando a ver si me pueden colaborar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
                   "SERVER=localhost;" + ;
                   "UID=root;" + ;
                   "PWD=;" + ;
                   "DATABASE=granja1;" + ;
                   "OPTIONS=131329;"
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
 
 
 
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
IF lnHandle > 0
 *cmd = SQLEXEC(lnHandle,"select nit,nombre,clave,tipo from factura","cur_roomtype")
 cmd = SQLEXEC(lnHandle,"select * from facturas")
browse
* hasta aca todo  funciona bien
* pero al hacer esto me sale erro!!
 
 IF cmd > 0
  INSERT INTO facturas(nit,nombre,fecha,valor,estado)values (fnit,fnombre,DATE(),ftotal,b,0)
 
 
 ELSE
  AERROR(laErr)
  MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
 ENDIF
 *USE IN cur_roomtype
 SQLDISCONNECT(lnHandle)
ELSE
 AERROR(laErr)
  MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
ENDIF



espero me puedan colaborar
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
Imágen de perfil de Mauricio Antonio

insertar dato de un form a mysql

Publicado por Mauricio Antonio (1368 intervenciones) el 12/05/2015 19:12:27
Espera un poco Wenceslao, voy a probar mi bolita magica para que me diga que error te da, paciencia!!!!!!
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 12/05/2015 22:32:37
Profavor, indica cual es el error que te arroja
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

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 12/05/2015 23:17:26
me dice que no existen los campos a los cuales estoy intentando acceder para hacer la carga
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 14:39:21
tmpsql="INSERT INTO facturas(nit,nombre,fecha,valor,estado) values (" + transform(fnit) + "," + fnombre + "," + dtoc(date()) + "," + transform(ftotal) + "," + transform(b) + ")"

cmd = SQLEXEC(lnHandle, tmpsql)

Uno de los problemas que veo es que queres realizar un insert directo a una tabla o cursor si el pasaje al motor de mysql. En las sentencias de arriba te doy un posible ejemplo de como hacerlo. Otro problema que veo es que estas definiendo en el insert una cierta cantidad de campos que luego no es la misma cantidad en el values.

Chequea esto y dime si te sirvio.
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 15:24:07
tmpsql="INSERT INTO facturas(nit,nombre,fecha,valor,estado) values (" + transform(fnit) + ",'" + fnombre + "'," + dtoc(date()) + "," + transform(ftotal) + "," + transform(b) + ")"

cmd = SQLEXEC(lnHandle, tmpsql)
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

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 13/05/2015 17:27:33
hola diego gustavo, he incluido la rutina que me envia, pero me sale un error que dice que no se puede conectar, cuando hago el browse, me muestra datos pero de ahi en adelante creo que hay un error y no me deja guardar datos en la bd. si me puedes corregir el codigo, te lo agradeceria.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
                   "SERVER=localhost;" + ;
                   "UID=root;" + ;
                   "PWD=;" + ;
                   "DATABASE=granja1;" + ;
                   "OPTIONS=131329;"
 
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
 
 
 
IF lnHandle > 0
 	cmd = SQLEXEC(lnHandle,"numero, nit, nombre, fecha,valor,estado from facturas","cur_roomtype")
 	BROWSE
 
	IF cmd > 0
 
			mpsql="INSERT INTO facturas(nit,nombre,fecha,valor,estado) values (" + transform(fnit) + "," + transform(fcliente) + "," + dtoc(date()) + "," + transform(ftotal) + "," + transform(b) + ")"
			cmd = SQLEXEC(lnHandle, mpsql)
		ELSE
 
  			AERROR(laErr)
 
  			MESSAGEBOX("No se pudo conectar a mySQL. Error: " + CHR(13) + laErr[2])
 
	        SQLDISCONNECT(lnHandle)
 
 
 
     ENDIF
ENDIF
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 19:53:19
Estimado wenceslao, tenemos que probar en que lugar del codigo se produce el error
Prueba primero con lo siguiente y luego me dices si que mensaje te da, asi detectamos bien el error que te esta dando. esto es para detectar si se te esta conectando bien al motor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
"SERVER=localhost;" + ;
"UID=root;" + ;
"PWD=;" + ;
"DATABASE=granja1;" + ;
"OPTIONS=131329;"
 
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
 
IF lnHandle > 0
MESSAGEBOX("Conección correcta")
ELSE
MESSAGEBOX("No se pudo conectar")
ENDIF
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

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 13/05/2015 20:27:36
el sistema me da un mensaje de conexion correcta, o sea q hasta ahi a bien el 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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 20:53:26
Ok, perfecto hasta ahi. Ahora necesito que me pases el nombre exacto de la tabla que tenes en el motor mysql y los campos de la misma. Para el caso de los campos necesito que me indiques cada uno que tipo de valor recibe (si es caracter, numero, fecha, fecha y hora, etc) Ademas necesito que me pases los valores que queres insertar en cada uno de los campos. Con esto puedo llegar a armarte la sentencia de incersion. Como concejo, te digo que el campo fecha para el caso de insercion deberia estar configurado con un default en la base de datos, asi nos evitamos insertar ese valor que puede llegar a tener diferencias entre lo que tiene el motor con lo que tiene el equipo donde ejecutas el sistema
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

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 13/05/2015 21:01:29
la tabla se llama facturas

y tienen los siguientes campos:

id= int autoincrementable
nit= varchar long 20
nombre= varchar long 50
fecha= fecha longitud 12
valor= int longitud 10
estado= int longitud 1
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 21:12:27
Fijate de ejecutar lo siguiente tengo dudas de como trabaja la fecha en mysql pero puedes probar a ver que te sale y me avisas. Seguro que vamos a poder llegar a tener un codigo que funcione
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
"SERVER=localhost;" + ;
"UID=root;" + ;
"PWD=;" + ;
"DATABASE=granja1;" + ;
"OPTIONS=131329;"
 
SQLSETPROP(0,"DispLogin" , 3 )
lnHandle = SQLSTRINGCONNECT(lcStringCnxLocal)
 
IF lnHandle > 0
cNit="20242424244"
cNombre="Pepe"
dFecha=date()
nValor=10
nEstado=0
 
tmpsql="Insert into facturas (nit, nombre, fecha, valor, estado) values ('"+alltrim(cNit)+"', '"+alltrim(cNombre)+"', '"+ dtoc(dFecha) +"', " +alltrim(transform(nValor))+ ", " + alltrim(transform(estado)) + ")"
 
cmd = SQLEXEC(lnHandle, tmpsql, "vacio")
 
IF cmd > 0
MESSAGEBOX("Insercion correcta")
ELSE
MESSAGEBOX("No se pudo insertar")
ENDIF
 
ELSE
MESSAGEBOX("No se pudo conectar")
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

insertar dato de un form a mysql

Publicado por wenceslao (134 intervenciones) el 13/05/2015 21:43:15
ok, muchas gracias, me funciono con un pequeño cambio que le hice al codigo que me envio; de verdad muchas gracias por su tiempo
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

insertar dato de un form a mysql

Publicado por Diego Gustavo Farra farra.diego@gmail.com (25 intervenciones) el 13/05/2015 21:49:28
Perfecto, de mas esta el agradecimiento. Esta bueno poder ayudar con las propias experiencias de uno. Cualquier otra consulta no dude en reportarlas en el foro, asi mismo, tiene mi correo para lo que necesite.
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