Como hacer una consulta select con una referencia o variable con LIKE

4,818 views
Skip to first unread message

Fox Friend

unread,
Jan 22, 2013, 1:11:01 PM1/22/13
to publice...@googlegroups.com
Intento hacer pruebas con los cursores.

Cómo genero una consulta de este tipo para una búsqueda de nombres de clientes:

En la línea de comandos la hago así:

SELECT * FROM CLIENTES WHERE nombre LIKE '%s%' INTO CURSOR CurClientes READWRITE
BROW

Pero si intento meter la referencia dentro del LIKE no funciona.

Mi referencia sería un Text que tiene un código como este en su Keypress():

USE CLIENTES IN 0
SELE CLIENTES

Xcli=ALLTRIM(THIS.VALUE)

Necesito poner ese valor que esta en la variable Xcli dentro del LIKE.

Ya probe como '%&Xcli%' o '%?Xcli%' y otras pero no funciona.

Gracias!

Arnaldo Toledano

unread,
Jan 22, 2013, 1:17:41 PM1/22/13
to publice...@googlegroups.com
Select * From Clientes Where Nombre Like "%"+Alltrim(xCli)+"%" Into Cursor CurClientes ReadWrite


Arnaldo
--
 
 

--
Arnaldo Toledano Tesys Informática Córdoba Argentina

Luis Maria Guayan

unread,
Jan 22, 2013, 1:35:35 PM1/22/13
to publice...@googlegroups.com
lcClave = "s"

SELECT *;
 FROM Clientes;
 WHERE  Nombre LIKE "%"+?lcClave+"%" ;
 INTO CURSOR CurCliente


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

--
 
 

Fox Friend

unread,
Jan 22, 2013, 1:40:43 PM1/22/13
to publice...@googlegroups.com
Gracias Arnaldo y Claudio Luna.

Lo que me sugiere Arnaldo funciona bien.

Pienso que lo que me sugiere Arnaldo lo usare con consultas de una sola linea corta y lo que me comenta el señor Claudio para consultas largas.

La cuestión es que no llegue a acostumbrarme tanto al textmerge porque no sé si existan equivalencias a eso en otros lenguajes como vb.net y php que también espero estar usando dependiendo del tipo de proyecto (si es que mi cerebro alcanza para aprender tanto jeje).

Gracias por su excelente ayuda !!

Fox Friend

unread,
Jan 22, 2013, 1:56:24 PM1/22/13
to publice...@googlegroups.com
Maestro Luis,

Funciona bien así en una sola linea:

SELECT * FROM CLIENTES WHERE nombre LIKE  "%"+Xcli+"%" INTO CURSOR CurClientes READWRITE

El signo de ? sería para cuando uso un SGBD con lo del SQLEXEC() o sería opcional ?

Saludos!

Antonio.xt

unread,
Jan 22, 2013, 2:22:36 PM1/22/13
to publice...@googlegroups.com

Fox Friend, el signo de ? en una instruccion SQLEXEC() es para parametrizar la variable de VFP a SQL, es decir para enviarle ese variable como parametro, para que SQL sepa que esa variable viene desde el programa y no es opcional, a menos que en vez de la variable envies el valor fijo.

Saludos...

ZeRoberto

unread,
Jan 22, 2013, 5:03:40 PM1/22/13
to publice...@googlegroups.com
Creo que al maestro se le fue el dedo en el ?

Saludos

--
 
 

Víctor Hugo Espínola Domínguez

unread,
Jan 22, 2013, 5:17:45 PM1/22/13
to publicesvfoxpro
Hola ZeRoberto

No se le fue el dedo. Visual FoxPro es muy versátil, se puede obtener algo de diferentes maneras.
El código de Luís Maria funciona Ok, también se puede hacer de esta forma:

lcClave = "%s%"

SELECT *;
 FROM Clientes;
 WHERE  Nombre LIKE ?lcClave ;
 INTO CURSOR CurCliente



Saludos,
Víctor.



--
 
 

ZeRoberto

unread,
Jan 22, 2013, 5:26:20 PM1/22/13
to publice...@googlegroups.com
No lo había probado así "%" + ?lcClave + "%"

Saludos

--
 
 

Carlos Miguel FARIAS

unread,
Jan 23, 2013, 7:31:20 AM1/23/13
to publice...@googlegroups.com
Fox Friend: Justamente hay tanta gente siguiendo con VFP porque VB.NET (ni VB 6) tienen capacidad para ciertos manejos que en el Zorro es una "simplicidad" y en en otros lenguajes es complejo.
En PHP, el manejo de strings o cadenas es mas versatil que en vfp, pero está orientado a la web y para escritorio debes usar una libreria gráfica.
Saludos: Miguel, La Pampa (RA)

--
 
 

Alfonso Arias Lemas

unread,
Jan 23, 2013, 7:55:12 AM1/23/13
to publice...@googlegroups.com
Hola Colegas.
Ya hace algún tiempo se hablo por aquí del Foxincloud, casualmente revisando la Web me volví a encontrar con esta herramienta en http://www.foxincloud.com , por acaso no vieron los demos? Están bastante interesantes, 100% VFP en web, según ellos dicen aquí que el 98% de la conversión de los sistemas es posible hacerla de forma automática, o sea, con el convertidor que ellos brindan, el Foxincloud se instala como una extensión de la IDE de VFP. Por lo que se vé los demos http://www.foxincloud.com/demos.php estan bastante interesantes. Ahora cabe esperar a ver donde para este proyecto que parece estar creciendo o si muere dentro de poco como nuestro amiguito el zorro.

Saludos,
Alfonso


Rafael Morales

unread,
Jan 23, 2013, 9:17:28 AM1/23/13
to publice...@googlegroups.com
Esta aplicación es gratuita o de pago?. Vi los demos, están buenísimos.


--
Rafael Morales

Hector R. De los Santos

unread,
Jan 23, 2013, 10:01:30 AM1/23/13
to publice...@googlegroups.com

:: HDS Consultores TI
Servidores | Redes | Programacion | GNU/Linux | PostgreSQL
Web: http://hdsconsultores.net
Blog: http://codigohds.com
Linux User #:320363





--
Rafael Morales

--
 
 

Luis Mata

unread,
Jan 23, 2013, 10:10:36 AM1/23/13
to publice...@googlegroups.com
Haber, como es esto? hablen los expertos que yo lo veo pero no lo creo... haber.
--
 
 

leonardo trujillo

unread,
Jan 23, 2013, 11:11:32 AM1/23/13
to grupo google vfp
si alguien puede dar más datos al respecto estaría bueno


--
 
 

Claudio Luna

unread,
Jan 23, 2013, 11:33:12 AM1/23/13
to Comunidad de Visual Foxpro en Español
Hola,
Como dice en la propia página para desarrollo es free pero en producción tiene costo.
http://www.foxincloud.com/pricing.php
Saludos



--
 
 

Alfonso Arias Lemas

unread,
Jan 23, 2013, 11:53:32 AM1/23/13
to publice...@googlegroups.com
Esta tecnología parece ser nueva mas hay que seguirla de cerca, segun leí anoche y entendí que ellos lo que hicieron fue envolver el código de VFP e crear un APP con clases equivalentes a las de VFP desarrolladas en java donde cada sección abierta corresponde a una instancia de java. Mas o menos fue lo que entendí. Claro esto siempre corriendo en un servidor FoxinCloud.

Saludos,
  Alfonso



De: Luis Mata <lm...@cclf.com.pe>
Para: publice...@googlegroups.com
Enviado: Miércoles 23 de enero de 2013 14:10
Asunto: Re: [vfp] VFP 100% en Web (cierto o falso).

--
 
 


Claudio Luna

unread,
Jan 22, 2013, 1:19:42 PM1/22/13
to Comunidad de Visual Foxpro en Español
FoxFriend
La solución más sencilla y flexible en VFP para todo ese tipo de cosas esta en text/endtext
con la clausula textmerge.
Ejemplo:
with thisform
     lcValor = Rtrim(This.Value)
    If Len(lcValor) > 2
        .grdConsulta.RecordSource = Space(0)
        TEXT TO lcConsulta TEXTMERGE NOSHOW PRETEXT 14
            SELECT nombre,codigo,idbanco FROM bancos WHERE nombre like '%<<lcValor>>%'
        ENDTEXT
        .oDb.Connect()
        .oDb.sqlsend(lcConsulta,"curprovs")
        .oDb.connclose()
        .grdConsulta.RecordSource = "curProvs"
        .Refresh
    Else
        .grdConsulta.RecordSource = ""
        .Refresh
    Endif
endwith



--
 
 

Reply all
Reply to author
Forward
0 new messages