FoxPro/Visual FoxPro - ?SQLEXEC(insert into

 
Vista:

?SQLEXEC(insert into

Publicado por sakuragi (17 intervenciones) el 03/11/2004 23:32:21
hola que tal

gracias

ya resolvi lo de la coneccion al mysql, mediante la ventan de comandos del
fox ya pude insertale ala basede datos registros, ahora quiere iserte
mediante la aplicacion en el boton guardar tengo el siguiente codigo:

1
2
3
SQLCONNECT('prueva mysql','root','')
?SQLEXEC(insert into personas
values(?thisform.nom.value,?thisform.ape.value,''))
y no me funciona todo lo que he leido dice que on esto puedo insertarle
und ato a la tabla y lo e probado de difetentes formas y no me sale con
apostrofes:

1
2
3
SQLCONNECT('prueva mysql','root','')
?SQLEXEC(insert into personas
values('?thisform.nom.value','?thisform.ape.value',''))

y tambien con comillas:

1
2
3
SQLCONNECT('prueva mysql','root','')
?SQLEXEC(insert into personas
values("?thisform.nom.value","?thisform.ape.value",''))
si me pueden desir que tan errado estoy

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:?SQLEXEC(insert into

Publicado por Roman Suazo (2723 intervenciones) el 04/11/2004 00:47:37
Prueba algo asi:

1
2
SQLEXEC(miconexion,"insert into personas"+;
"values("+thisform.nom.value+","+thisform.ape.value+")")

Mira bien como armo todo la cadena, dejando las variables AFUERA de las comillas. Ademas checa el primer parametro que debe llevar la funcion SQLEXEC, le debes definir a que conexion la mandaras la sentencia...
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:?SQLEXEC(insert into

Publicado por sakuragi (17 intervenciones) el 04/11/2004 05:58:49
entonses quedaria asi;

SQLCONNECT('prueva mysql','root','')
?SQLEXEC(prueva mysql,"insert into personas"+,"values("+thisform.nom.values+","+?thisform.ape.values+",'')")

si es asi me marca un error:

"function name is missing ).
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:?SQLEXEC(insert into

Publicado por Roman Suazo (2723 intervenciones) el 04/11/2004 15:19:39
Debes hacer algo Asi:

1
2
3
Miconexion=SQLCONNECT('prueva mysql','root','') 
SQLEXEC(Miconexion,"insert into personas"+;
"values ("+thisform.nom.values+","+thisform.ape.values+'')")

Debes cerciorarte qeu esa es la sintaxias para usar el insert en mysql.Tambien no recomednaria qeu el origen de datos tenga un nombre con dos palabras separadas ('prueva mysql')

Revisa bien los valores que regresan ambas funciones ya que con ellas es que defines si el proceso se esta llevando a cabo correctamente...
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:?SQLEXEC(insert into

Publicado por sakuragi (17 intervenciones) el 05/11/2004 00:08:49
hola que tal gracias

lo puse asi como me dises y me digue marcando error:

"missing operand"

se me ta hasiendo dificil

=S
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:?SQLEXEC(insert into

Publicado por Roman Suazo (2723 intervenciones) el 05/11/2004 03:57:02
Primero debes checa el SQLCONNECT( ), es decir, si estas haciendo bien la conexion. Esta funcion te debe mandar un valor positivo mayor de 0 para indicar que todo esta correcto...

Segundo, desde el mysql ejecuta el INSERT para ver si esta bien la sintaxis..La sintaxis de fox no es la misma de mysql, aunque pudieran
ser la misma en este caso

Si tienes correctamente la sintaxis solo debes hacer la cadena que conforma el SELEC, dejando fuera de los parentesis lo que son variables o propiedades de objetos...Otro problema que miro hasta ahora es que no defines en que campos se pondran los valores que quieres insertar!!!!!!!!!!

Tienes que ir desmenuzando el problema para asi encontrar el problema. Lee la ayuda del Fox...

1
2
3
4
5
6
7
8
9
10
11
MiConexion=SQLCONNECT('prueva mysql','root','') 
 
if MiConexion>0
 
MiComando="insert into personas (campo1, campo2)"+;
" values("+thisform.nom.value+;
","+thisform.ape.values+")"
SQLEXEC(Miconexion,MiComando)
else
=Messagebox("Error en la conexion",32,"Error")
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

RE:?SQLEXEC(insert into

Publicado por Roman Suazo (2723 intervenciones) el 05/11/2004 04:00:18
En vEz de parentesis lease COMILLAS
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:?SQLEXEC(insert into

Publicado por Koy (5 intervenciones) el 18/11/2004 15:51:53
Te recomiendo que almacenes los valores que quieres guardar en una variable y luego los mandes a guardar de lasuiguiente manera:
1
2
3
4
5
6
7
tCampo1=thisform.nom.value
tCampo2=thisform.nom.value
 
CadenaInsert = [ insert into personas (campo1, campo2) ]+;
          [ values (?tCampo1,?tCampo2) ]
 
SQLEXEC(Miconexion,CadenaInsert)
Esta es la forma que yo utilizo siempre que necesito insertar, borrar o actualizar una tabla. Fíjate que utilizo corchetes " [ " " ] " para crear las cadenas, el signo de interrogación debe preceder a cada nombre de variable para que no te genere un error, es decir, es obligatorio que coloques el signo "?" antes (y pegado) de cada nombre de variable, si no lo haces así te seguirá apareciendo el error.

Esto lo he usado con diferentes gestores de BD y funciona a la perfección.
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

RE:?SQLEXEC(insert into

Publicado por Fernando Camejo (1 intervención) el 11/01/2017 16:56:11
excelente, muchas gracias por tu aporte hermano, bendiciones para tí
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:?SQLEXEC(insert into

Publicado por wences (27 intervenciones) el 23/11/2004 17:23:12
EL problema con el Mysql es que necesita obligatoriamente las comillas simples en los campos , no las dobles , por lo que tendrias que hacer algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
lnHandle=SQLSTRINGCONNECT(lcStringConn)
IF lnHandle > 0
eliminarla=CHR(39)+"DROP TABLE IF EXISTS trazos"+CHR(39)
aejecutar=CHR(39)+"CREATE TABLE trazos (codigobt CHAR(36) NOT NULL,delegabt CHAR(3) NOT NULL,albaran CHAR(8) NOT NULL,diabt CHAR(10) NOT NULL,horabt CHAR(5) NOT NULL);"+CHR(39)
	dimension valores(6)
	SQLEXEC(lnhandle,'use halgal')
	SQLEXEC(lnhandle,&eliminarla)
	SQLEXEC(lnhandle,&aejecutar)
	hora=CHR(39)+TIME()+CHR(39)
	anno=CHR(39)+DTOC(DATE())+CHR(39)
	SQLEXEC(lnhandle,"insert into trazos codigobt,delegabt,horabt,diabt) values ('12345678901234567890','999',&hora,&anno)")
	SQLEXEC(lnhandle,"select * from trazos","pruebas")
	BROWSE
	SQLDISCONNECT(lnHandle)

Esto funciona y esta probado y comprobado , primero me "cargo" la tabla , despues la cero (son ejemplos) , despues añado un valor a alguno de los campos ... como ves los campos que inserto a mano llevan la comilla simple y los que son variables se la añado y uso & para traspasarlos ... ese es el truco de Mysql ... faltan los ; entre las lineas pero es que en el original era una linea solamente ..
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:?SQLEXEC(insert into

Publicado por adolfo callirgos (3 intervenciones) el 01/02/2006 16:10:04
mira yo lo he hecho en visual fox pro 6 usando una base de datos con oracle 9i.
es asi,los almaceno en variables y luego los paso

1
2
3
4
5
varnombre=alltrim(thisform.nom.value)
varapellido=alltrim(thisform.ape.value)
 
SQLEXEC(insert into personas
values('?varnombre','?varapellido','')) 

mira primero no me funcionaba por que tenia que quitarle los espacios en blanco a las cajas de texto, y luego lo inserto en la base de datos, ojala te funcione asi, suerte.
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:?SQLEXEC(insert into con oracle 10g

Publicado por Jose Guevra (3 intervenciones) el 26/07/2011 23:12:45
Gracias amigo con tu ayuda me funcionó, estoy utilizando visualfox 9 y oracle 10g
Yo utilice esto: pasa datos numericos de una tabla dbf a una tabla de oracle para no utilizar load data con archivo de texto desde el servidor de datos

1
2
3
4
5
6
7
8
9
10
11
SELECT 2
USE clientes
scan
IF issfav#0
CU=STR(CUENTA,8)
VA=STR(valor,8,2)
SELECT 1
SQLEXEC(Conex, "insert into tablaoracle (cuentacli,valtransfer) VALUES (?cu,?va) ", 'micursor' )
ENDIF
SELECT clientes
ENDSCAN

conex es mi conexcion previa
Conex=SQLSTRINGCONNECT('Oracle en OraClient10g_home1;
uid=SANJORGE;pwd=claveusuario; server=192.168.7.100')
SUSPEND
Los valores numericos me toco transformarlos antes
Solo venciéndote venceras aprendi en el ejercito
Gracias por crear este sitio que ayuda mucho en el aprender de cada dia
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
sin imagen de perfil

RE:?SQLEXEC(insert into

Publicado por Jarry Palacios (3 intervenciones) el 30/10/2012 01:58:00
Buen día profe; mi mas cariñoso saludo; le cuento que necesito un poco de su ayuda y de verdad disculpe que lo moleste con esta tonteria;

estoy desarrollando un proyecto en visual foxpro con las db en postgrsql

cree procedimientos almacenados para ejecutar las instrucciones DML; hasta la fecha solo habia necesitado almacenar datos de tipo caracter, pero hoy que necesito guardar datos de tipo numerico me esta dando error

esta es la instruccion que hace el llamado al procedimiento

las variables o parametros xn1 y xn2 son de tipo nomerico

xsql="select t_spartida(2,?thisform.text1.value,?thisform.text2.value,?xn1,?xn2,?xcod_ente,?xcod_prd,?xcod_usu)"

mi pregunta es la sintaxis esta correcta o debo cambiar el caracter "-?-" cuando se trata de variables que contengan datos numericos??
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