FoxPro/Visual FoxPro - Ayuda..busquedas seek

 
Vista:

Ayuda..busquedas seek

Publicado por Javier (7 intervenciones) el 11/10/2004 22:29:25
hey, saludos a ustedes...se me presenta un problema en las busquedas seek, le agradesco me ayuden.
tengo una tabla llamada "equipo", allí hay tres campos, codmed(n-5),codequi(c-4),codesp(n-3)..todos ellos son indices normales en la tabla.
En un (command-click), tengo estas instrucciones
select 3 *equipo
SET ORDER TO codmed
SEEK (thisform.txtcodmed.Value)+(thisform.txtcodesp.Value)
IF FOUND()
grupo de instrucciones a
ELSE
grupo de instrucciones b
ENDIF
no encuentra registros que coincidan con los campos, es decir, no se ejecutan el "grupo de instrucciones a",pero si el grupo de instrucciones b, habiendo un registro que satisface los dos valores de campos de busqueda.
La busqueda la he probado colocando el trim y el val a los parametros y es lo mismo, ademas e intentado con .and. en vez del +.
Agradeciendoles.,,,pues necesito hacer varias consultas..evaluando hasta 3 campos a la vez.
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..busquedas seek

Publicado por ricardo (22 intervenciones) el 11/10/2004 22:58:59
el comando seek (igual que el FIND) solo puede usarse cuando buscas un solo dato y este esperas encontrarlo en el campo por el cual fue indexado el archivo. Ejemplo:

STORE "PASCUALINI" TO NNOMBRE
USE CLIENTES
INDEX ON NOMBRE TO XNOMBRE &&INDEXO X EL CAMPO A BUSCAR
SEEK NNOMBRE
IF EOF()
WAIT "NO SE ENCONTRO"
ELSE
EDIT
ENDIF

****** AHORA ******

SI QUERES BUSCAR COINCIDENCIA EN mas de un campo a la vez
te recomiendo reemplazar

SEEK (thisform.txtcodmed.Value)+(thisform.txtcodesp.Value)

por

store ????? to nmed
store ???? to nequi
store ??? to nesp

use equipo
go top locate for codmed=nmed.and.codequi=nequi.and.codesp=nesp

IF FOUND() && yo aqui pondria "IF .NOT.EOF()"
grupo de instrucciones a
ELSE
grupo de instrucciones b
ENDIF

***** ESPERO HABER SIDO CLARO Y QUE TE SIRVA
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..busquedas seek

Publicado por marfe (190 intervenciones) el 12/10/2004 02:52:40
hola, que tal, creo que tu problema es que estas sumando los dos campos y lo que debes hacer es concatenarlo, por ejemplo:
el codmed = 5 y el codesp=3 entonces ,podrias convertir los dos valores a caracteres y concatenarlos de esta forma:
str(thisform.txtcodmed.value)+str(thisform.txtcodesp.value) y tendrias el resultado "53".

lo que vos estas haciendo es sumar 5 +3, y tu resultado te da 8...

Espero que entiendas y puedas solucionar tu problema, saludos desde Paraguay!!!
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..busquedas seek

Publicado por Marcos A. (263 intervenciones) el 12/10/2004 13:54:14
Hola.

Siempre cuando crees indices y los manipules acostumbra a usar el STR para los campos que son numericos Ejem.
nombre c(10), edad n(2)

index on nombre+str(edad) TAG indice

seek nombre+str(edad)
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