Page 1 of 1

Como puedo realizar una busqueda combinada con DbSeek()??

PostPosted: Thu Aug 23, 2007 12:38 pm
by Elias Torres
Hola a todos.

ALguien puede indicarme como hacer una busqueda combinada de tres campos de una tabla usando DbSeek()??. Es decir, que la busqueda sea satisfactoria si el registro en el que se busca cumple las tres condiciones...

He probado ya unas cuantas formas y a pesar de que no da error el resultado no es correcto.

Saludos.

Elías Torres.

PostPosted: Thu Aug 23, 2007 1:02 pm
by Antonio Linares
Elías,

Tienes que tener el índice construido con una expresión que use los tres campos, para poder buscar por esa misma expresión

PostPosted: Fri Aug 24, 2007 9:06 am
by Elias Torres
Antonio,

Tengo declarado un indice compuesto en la tabla cuya expresión es:
cod_art+def_talla+def_color

La tabla la abro y monto el indice de la siguiente forma:

SELECT 0
USE ( CURDIR()+"\inventario.dbf" ) VIA "DBFCDX" new
INDEX ON cod_art+def_talla+def_color TAG cod_art+def_talla+def_color
inventario->(OrdSetFocus( "cod_art+def_talla+def_color"))

Y por último hago la búsqueda así:

inventario->(DbSeek((articulo+talla_temp+color_temp),.t.))

donde articulo seria el cod_art, talla_temp es el valor correspondiente a def_talla y el color_temp corresponde a def_color...

Pero la búsqueda no es correcta.... Que se me está escapando??


Saludos y gracias....

Elías Torres.

PostPosted: Fri Aug 24, 2007 9:30 am
by Antonio Linares
Elías,

Las variables articulo, talla_temp y color_temp tienen que tener la misma longitud que los campos cod_art, def_talla y def_color

PostPosted: Fri Aug 24, 2007 10:27 am
by Elias Torres
Antonio, arreglado, gracias.....

Saludos

Elías Torres.