Clipper/FiveWin - Como Continua Busqueda despues de Seek????

 
Vista:

Como Continua Busqueda despues de Seek????

Publicado por Jose Martinez Chile (3 intervenciones) el 10/09/2006 21:29:28
Hola Amigos Programadores:

Soy uno de uds. Lo reconozco, y en mi calidad de tal quiero valerme de su caridad cognitiva.
Mi pregunta es: Asi como con locate busco un determinado valor en un campo, y continuo el recorrido del Dbf con CONTINUE... Como continuo la busqueda si hago un Seek de un Dbf indexado ( NTX ), La rutina que normalmente hago es :

Con Locate

Use det_venta
Set Index cod_vta,desc_vta
locate for venta=654
do while .not. eof()
nombre=nombre_db
Mail=mail_db
.
.
.
continue
enddo

Con Seek

Use det_venta
Set Index cod_vta,desc_vta
a=654
seek a
do while .not. eof()
nombre=nombre_db
Mail=mail_db
.
.
.
??????? -- > continue >--- Aqui que va??????
enddo

Espero k me entiendan .....
Grax
Jose
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:Como Continua Busqueda despues de Seek????

Publicado por Mauricio Arevalo (152 intervenciones) el 11/09/2006 14:31:41
Jose:

Con skip
Use det_venta
Set Index cod_vta,desc_vta
a=654
seek a
do while .not. eof()
nombre=nombre_db
Mail=mail_db
.
.
.
SKIP // ??????? -- > continue >--- Aqui que va??????
enddo

Saludos


Mauricio Arevalo
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:Como Continua Busqueda despues de Seek????

Publicado por Jose Martinez Chile (6 intervenciones) el 11/09/2006 22:28:33
Hola Mauricio: Mira puse la instruccion skip, pero tal como lo pense esto no sirve pues solo me desplaza al siguiente registro, sin verificar la condicion del seek. Debe haber otra instruccion que continue el seek.
Pucha, quien pobra saberlo????
:(
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:Como Continua Busqueda despues de Seek????

Publicado por Jose Martinez Chile (6 intervenciones) el 11/09/2006 22:28:36
Hola Mauricio: Mira puse la instruccion skip, pero tal como lo pense esto no sirve pues solo me desplaza al siguiente registro, sin verificar la condicion del seek. Debe haber otra instruccion que continue el seek.
Pucha, quien pobra saberlo????
:(
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:Como Continua Busqueda despues de Seek????

Publicado por Martin Gamez (7 intervenciones) el 12/09/2006 02:18:50
Jose si estas usando la llave del indexado por cod_vta

seria de esta manera suponiendo que cod_venta es el indice, si dieras mas informacion te podria ayudar mejor.

Use det_venta
Set Index cod_vta,desc_vta
a=654
seek a
do while cod_vta = a
nombre=nombre_db
Mail=mail_db
skip
enddo

este bucle recorre nadamas los registros que sean iguales a 654
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:Como Continua Busqueda despues de Seek????

Publicado por Mauricio Arevalo (152 intervenciones) el 12/09/2006 22:17:00
Jose:
El comando locate basicamente busca en una base de datos cuando no esta indexada, el locate se ubica en el primer registro encontrado en la base, y con continue siges la busqueda del locate para toda la base; el comando seek o funcion dbseek() busca solamente en el area o base de datos actual la clave suministrada y siempre tiene que ser unica..... Diria que quieres mezclar dos cosas totalmente diferentes.

Saludos

Mauricio Arevalo
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:Como Continua Busqueda despues de Seek????

Publicado por raul (44 intervenciones) el 14/09/2006 03:28:21
No se si alcanzo a entenderte bien, según parece quieres recorrer los registros cuyo campo venta = 654, pero tu dbf está ordenada por otros campos, de ser así creo que puedes resolverlo de 2 maneras..

1) Usando un Filtro, creo que se codifica así: SET FILTER TO {VENTAS = 654}.

2) La otra es recorriendo toda la base y preguntando dentro del DO WHILE
GOTOP() // Voy al 1er. registro
DO WHILE .not. EOF()
IF VENTA = 654
nombre=nombre_db
Mail=mail_db
Endif
DBSKIP()
ENDDO
* La verdad nunca usé el LOCATE..
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