FoxPro/Visual FoxPro - "?" vs "&"

   
Vista:

"?" vs "&"

Publicado por victor perez (278 intervenciones) el 05/10/2010 22:23:37
Amigos,

Tengo una duda que no logro resolver.

Cuando debo usar "?" y cuando "&" en una sentencia incluida en SQLEXEC. ?

Ejemplo,

A1= Thisform.txtcodigo.value

Thisform.conecta //+ Abre la conexion

SqlExec(lnhandle,"Select * from Patient where codigo=?A1","_cursor") o lo correcto es
SqlExec(lnhandle,"Select * from patient where codigo=&A1","_cursor")

Les soy sincero las veces que me trabja es con el "&" pues hago un browse para ver la info contenida en el cursor y usando "?" no aparece nada.

Seria bueno aclarar esto antes de seguir.

Gracias,

Victor,
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:

Publicado por victor perez (278 intervenciones) el 06/10/2010 03:05:11
Mira este ejemplo propio:

C1= thisform.pgfFicha.page1.scodigo.value // codigo es una cadena de texto //
C2= thisform.pgfFicha.page1.snombres.value

Thisform.conecta
SqlEXEC(lnhandle,"Select * from patient where Codigo=&C1","CodPat")
SqlDisconnect(lnhandle)

Browse

Despliega:

Codigo NOMBRES APELLIDOS
010101AA VICTOR PEREZ

y los otros campos del cursor.

Ahora si pongo

Thisform.conecta
sqlExec(lnhandle,"Select * from patient where codigo=?C1","codPat")
SqlDisconnect(lnhandle)

Browse

Me despliega los campos sin ningun valor de referencia.

Por eso es que no se cuando debo usar ? y cuando usar &

Yo se que con el comando insert into de SQL debo usar ?

Victor
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:

Publicado por xx (378 intervenciones) el 06/10/2010 23:13:36
Bueno mira hice la prueba y me pasa lo mismo, te cuento que para mi es nuevo el tema del ? y & en las sentencias SQL, pero lo hace mas facil armar que enviando como debe ser al mysql, te cuento por si te sirve que igual de todos modos puedes ejecutar tus sentencias sin ? y & solo que debes armarlo correctamente, por ejemplo

_nombre="JUAN PEREZ"
_str=[INSERT INTO tabla (nombre,fecha,fechayhora) values (']+_nombre+[',curdate(),now());]
o de modo mas facil:
_str=[INSERT INTO tabla (nombre,fecha,fechayhora) values(?_nombre,curdate(),now());]
SQLEXEC( _xSQLcn, _str )

Obs: curdate() y now() son funciones de mysql y por obtienen la fecha y hora dependientes del servidor.

con select:
_nombre="JUAN PEREZ"
_str=[select * from tabla where nombre like '%]+_nombre+[%';]
o del modo facil:
_str=[select * from tabla where nombre like '%&_nombre%';]
_str=[INSERT INTO tabla (nombre,fecha,fechayhora) values(?_nombre,curdate(),now());]
SQLEXEC( _xSQLcn, _str )

yo cualquier duda que tengo lo pruebo desde la consola de mysql para armar las sentencias.

Saludos
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