FoxPro/Visual FoxPro - pasar variables a la clausula IN SQL

 
Vista:

pasar variables a la clausula IN SQL

Publicado por JAVIER (7 intervenciones) el 07/04/2006 23:31:35
Hola a todos!... de que manera debo presentar una variable en una consulta SQL. El asunto es que mi variable sustituye los valores que van dentro de la clausula In (SQL).
La variable la creo de la siguiente manera:

lista=""
FOR i=1 TO thisform.list2.ListCount
IF i=1
lista=lista+ALLTRIM(thisform.list2.List(i))
ELSE
lista=lista+','+ALLTRIM(thisform.list2.List(i))
ENDIF
ENDFOR
Con SQL así: ....... where Empresa.emp_cod IN (lista)

***de la forma "E0001, E0005"

insertando valores manualmente funciona perfectamente:... where Empresa.emp_cod IN ("E0001","E0002")

Como lo saben todos los lenguajes manejan comillas para las cadenas de caracteres.

No solamente lo he probado como está en el código anterior, tambien lo presento asi:
desde el depurador chequeo el valor de la variable.
"E0001","E0002" (exactamente como lo inserto manualmente, sin que funcione)
""E0001","E0002""
graciasde antemano colegas.
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
sin imagen de perfil

RE:pasar variables a la clausula IN SQL

Publicado por Manuel (344 intervenciones) el 08/04/2006 02:04:37
En VFP puedes usar tanto comillas ( " ) como apóstrofos ( ' ) o también corchetes ( [ ] ) para expresar cadenas.
Encierra toda la expresión con alguno de estos símbolos y usa otro para cada cadena individual.
Finalmente, prueba usando &lista para el paréntesis IN.. Algo así:
lista=""
FOR i=1 TO thisform.list2.ListCount
IF i=1
lista="["+ALLTRIM(thisform.list2.List(i))+"]"
ELSE
lista=lista+",["+ALLTRIM(thisform.list2.List(i))+"]"
ENDIF
ENDFOR
Con SQL así: ....... where Empresa.emp_cod IN (&lista)
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:pasar variables a la clausula IN SQL

Publicado por Javier (7 intervenciones) el 08/04/2006 19:39:02
Gracias manuel !!!... He solucionado el problema con tu ayuda.
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