FoxPro/Visual FoxPro - ¿Existe un reemplazo para el operador $ ??

   
Vista:

¿Existe un reemplazo para el operador $ ??

Publicado por Andrea (325 intervenciones) el 16/08/2010 00:43:29
Buscando la manera de aumentar la velocidad en búsquedas en trabajo en red, me surgió una duda:
- Tengo armado un buscador donde el usuario ingresa cualquier cadena o subcadena y devuelve una lista con los posibles clientes, artículos, proveedores, etc (lo tengo armado para cualquier tabla)

En el keypress de un TEXTBOX tengo el siguiente código

SELECT codigo, nombre FROM mi_tabla INTO CURSOR cursor_temp WHERE ALLTRIM(this.value) $ nombre

Con esta sentencia, el usuario va filtrando todos los nombres en un cursor temporal

Si el usuario quiere buscar a todos los JUAN

Escribiendo____Aparece
"J"_________ _"ALVAREZ JOSE", "GOMEZ JUAN", "JUSTO MATIAS","LA JUANA SA", "JUAREZ, EMILIO",etc
"JU"_________"GOMEZ JUAN", "JUSTO MATIAS", "LA JUANA SA", "JUAREZ EMILIO"
"JUA"________"GOMEZ JUAN", "LA JUANA SA", "JUAREZ EMILIO"
"JUAN"_______"GOMEZ JUAN", "LA JUANA SA"

etc.
ESTO FUNCIONA BIEN, pero se pone algo lento cuando trabaja en red (ver post anterior"

¿HABRÁ ALGUNA FORMA DE MEJORAR EL OPERADOR DE COMPARACIÓN "$" ??

Muchas 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:¿Existe un reemplazo para el operador $ ??

Publicado por Saul Hernande (676 intervenciones) el 16/08/2010 07:11:26
nNombre = 'JUAN'

SELECT codigo,Nombre;
WHERE nombre LIKE "%"+nNombre+"%";
FROM cliente INTO CURSOR busqueda;
ORDER BY nombre

Saludos

Saul Hernandez
Guatemala
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:¿Existe un reemplazo para el operador $ ??

Publicado por Andrea (325 intervenciones) el 17/08/2010 03:22:19
¿Qué función cumple el "%"???

(Disculpen mi ignorancia....=)

Gracias por las respuestas
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:¿Existe un reemplazo para el operador $ ??

Publicado por victor perez (278 intervenciones) el 17/08/2010 04:48:23
Hola,

Yo no soy programador de profesion pero he leido sobre las clausulas en SQL.

El comando LIKE ..."%" ... CADENA ..."%" es similar al "$" de Foxpro, Clipper etc.

Mira lo que he ledio es que si la cadena de busqueda esta entre los dos signos de % busca en cualquier parte del contenido de un campo por la cadena señalada.

Si pones un "%" + ncadena busca registro cuya parte final sea lo que termine igual a los caracteres de nCADENA.

Si pones ncadena +"%" entonces busca todos los registros cuyo campo "X" inicia con la secuencia nCADENA.

Se dice, que debemos familiarizarnos mas con SQL y sus sentencias y en el el Caso SELECT es una sentencia SQL cuando se usa en la forma que tu la planteas.

Tendrias que probar a ver si hay diferencia en la velocidad entre uno y otro metodo pero creo que lo mejor es la sugerencia que te hace es_binario en este mismo post.

Yo uso "$" y no me va mal...pero no uso Keypress sino validate o lostfocus asi solo cuando presiono ENTER se busca por la cadena seleccionada.

Si tu quieres que la busqueda se haga incremental "J" luego "JU" y asi a medidas que escribas entonces el sistema siempre sera lento, sobretodo en red porque tiene que ejecutar la sentencia SQL por cada vez que introduces un caracter. Algo muy lento.

Espero te haya servido de ayuda.

Victor Perez - Panama -
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:¿Existe un reemplazo para el operador $ ??

Publicado por victor perez (278 intervenciones) el 17/08/2010 05:01:30
Hola Andrea,

para aclararte mas, mira las siguientes sentencias SQL

1. Select nombres,apellidos from Patient where nombres like "%OR%"
2. Select nombres,apellidos from Patient where nombres like "%OR"
3. Select nombres,apellidos from Patient where nombres like "OR%"

En el primer caso te listara:
VICTOR PEREZ
ORLANDO PERALTA
HORACIO VEGA

Pues busca la cadena "OR" en cualquier posicion del campo nombres

En el segundo caso te lista:
VICTOR PEREZ
HECTOR BOLAÑOS
ELEONOR GARCIA

Pues buscara que la info contenida en el campo nombres termine en "OR".

En el tercer caso te lista

ORLANDO PERALTA
ORFELINA PEREZ
ORTENCIA ESCUDERO

Ves la diferencia...

Saludos. Prueba con una base de datos tuya y veras lo que lista cada vez que usas uno de los comandos. Asi aprenderas...en realidad "%" viene a decir "lo que sea"

Saludos,

Victor Perez
Panama
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:¿Existe un reemplazo para el operador $ ??

Publicado por es_binario (757 intervenciones) el 16/08/2010 07:14:20
se me hace mucha carga para la red en el presskey

personalmete yo prefiero la clausula like en vez de $ pero son casi igual de veloces

yo te recomendaria que lo pusieras en el valid, asi tendrian que presionar enter despues de escribir cierto numero de caracteres.

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