Para mejorar rutina de busqueda en una tabla
Publicado por alexcoinc (40 intervenciones) el 27/11/2012 15:52:44
Se tiene un optiongroup en el cual elijo si quiero buscar una cadena que empice o que contenga
lo que el usuario digite.
La opción busca lo que empiece por la cadena digitada por el usuario.
------------------------------------------------------------------------------------------------------------
If thisform.Optiongroup2.value=2
If ThisForm.Optiongroup1.Option1.value=1
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(this.value) $ alltrim(nombre) "+;
"order by nom into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Else
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(this.value) $ codigo order by doc into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Endif
Else
****** aqui sera lo que contenga
***************************************
If ThisForm.Optiongroup1.Option1.value=1
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(nombre) LIKE ALLTRIM(this.value)+'%' "+;
"order by nom into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Else
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where codigo LIKE ALLTRIM(this.value)+'%' order by doc into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Endif
Endif
Esto funciona bien, cuando la tabla es pequeña....digan ustedes ...unos 20,000 registros pero en una tabla con 150,000 registros o mas , se hace muy lenta.
Que puedo hacer..o que rutina me pueden facilitar !!
Gracias
lo que el usuario digite.
La opción busca lo que empiece por la cadena digitada por el usuario.
------------------------------------------------------------------------------------------------------------
If thisform.Optiongroup2.value=2
If ThisForm.Optiongroup1.Option1.value=1
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(this.value) $ alltrim(nombre) "+;
"order by nom into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Else
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(this.value) $ codigo order by doc into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Endif
Else
****** aqui sera lo que contenga
***************************************
If ThisForm.Optiongroup1.Option1.value=1
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where alltrim(nombre) LIKE ALLTRIM(this.value)+'%' "+;
"order by nom into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Else
cadena="select nombre as nom, codigo as doc from (alltrim(rutax)+'dima') "+;
"where codigo LIKE ALLTRIM(this.value)+'%' order by doc into cursor cur_dima"
ThisForm.List1.rowsource=cadena
nomdx=cur_dima.nom
thisform.refresh
Endif
Endif
Esto funciona bien, cuando la tabla es pequeña....digan ustedes ...unos 20,000 registros pero en una tabla con 150,000 registros o mas , se hace muy lenta.
Que puedo hacer..o que rutina me pueden facilitar !!
Gracias
Valora esta pregunta
0