FoxPro/Visual FoxPro - ayuda con indices!!!!!

   
Vista:

ayuda con indices!!!!!

Publicado por angel (100 intervenciones) el 05/07/2008 18:40:29
tengo una tabla con dos campos que almacenan numero telefonicos, uno de ellos es el numero de telefono y el otro el numero marcado, esta info es de un historial de una planta tele fonica... o algo por el estilo.

estoy programando una aplicacion, un reporte, y he topado con el siguiente problema

en base al parametro de fecha, hago un select a la tabla extrayendo los datos de la fecha q el usuario quiere consultar, eso lo meto a un cursor curbase.

luego en ese curbase, necesito ir buscando unos registro para irlos clasificando, entonces para la busqueda necesito dos parametros el numero y el numero marcado. usualmente yo esto siempre lo he hecho con un locate, locate for tel='v1' and t2='va2' pero en este caso no funciona pq se tarda uuuuuuuuuuuuuuuuuuuuuuuuuu un mundial... entonces creo q necesito crear un indice..
yo se q debo buscar con el seek(), pero actualmente solo puedo parametrizar por un campo, y la busqueda como ya explicque necesita dos parametros el numero marcado y el telefono, para buscar los registros.. entonces el seek deberia ser algo asi, no se seme ocurre IF SEEK(TELEFONO_A_BUSCAR,NUMERO_MARCADO_A_BUSCAR) DARLE LOS DOS PARAMETROS PARA Q ME ENCUENTRE EL REGISTRO.... como hago eso ?

de ante mano 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:ayuda con indices!!!!!

Publicado por Miguel (115 intervenciones) el 06/07/2008 02:00:58
crea un indice compuesto

telefono_a_buscar+numero_marcado

cuando utilices SEEK()

variable=telefono_a_buscar+numero_marcado
seek(variable)
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

YA PROBE ESO Y NO FUNCIONO

Publicado por angel (100 intervenciones) el 07/07/2008 19:41:57
fijate q cuando probe eso... lo q hace es sumar y me localiza en registro donde casualmente la convinacion de la suma q hago en variable conincide.. y ahi se posiciona... no en el registro exacto... o no se si lo hice mal.. es decir asi mira...

telefono=5
marcado=5

ponele q eso ando buscando por decir algo

variable =5+5
variable=10

cuando hago el seek
me posiciona en el primer registro donde la convinacion de telefon + marcado sea =10.

podria ser por ejemplo
telef =9
marc =1

ahi me posisonaria , y eso estaria incorrecto... como te digo , no se si estoy haciendo algo mal....
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:YA PROBE ESO Y NO FUNCIONO

Publicado por kong (681 intervenciones) el 07/07/2008 20:09:46
Haber si entendi.
Tienes una tabla grandota de fecha,numero,marcado
y quieres hacer buscar un numero especifico que ha marcado a otro especifico, en una fecha especifica.....correcto?

con el campo fecha indexado previamente.

select fecha,numero,marcado from tu tabla where (fecha=lafechaindicada and numero=numeroindicado and marcado=marcadoindicado) into cursor tucursor

................................................
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:Ayuda con Indices

Publicado por Edgar Garcia  (3 intervenciones) el 25/07/2008 07:18:31
Angel : Lo que te ocurre con esos indices es un problema de tipo de dato. los campos deben concatenarse construyendo una cadena de caracteres no sumando 2 campos. Ejemplo

cNumero1 : Char( 10 )
cNumero2 : Char( 10 )

Entonces la cadena de busqueda queda así :

Seek( cNumero1 + cNumero2 ) por supuesto el indice debe estar compuesto por 2 columnas tipo caracter o el Str( Numero1, 10 ) + Str( Numero2, 10 ).
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