Clipper/FiveWin - CDX con Problemas

 
Vista:

CDX con Problemas

Publicado por Fabian (4 intervenciones) el 20/10/2003 22:00:43
Tengo hace años una aplicación con indices CDX; un maestro de Productos donde tengo un indice con el codigo del producto (13 Caracteres) y otro indice con el nombre (40 caracteres), me crearon un producto que empieza con "M01005T9...." y aunque existe en la tabla las variaciones de ese código y los veo, no lo encuentra al hacer la búsqueda con el SEEK... Me aburrí de crear indices, traspasar la tabla y cachurear la posible solución. ¿Alguno sabe que es lo que está pasando con este código y sus derivados?.
Se los agradecería. Trabajo con Clipper 5.02c y blinker 3.0. Además de la Librería DBFCDX en el archivo LNK, también incluyo la Fivepro.
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:CDX con Problemas

Publicado por Manuel Escamilla (107 intervenciones) el 21/10/2003 00:53:30
Ya utilizaste SET SOFTSEEK ON ???
lo que te hace es colocarlo en el primer registro que coincida, si no lo empreas, el SEEK hace un barrido en toda la base y te deja el puntero en el EOF

Para verificar no utilizarias el found(), mejor compara la cadena

Salu2
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
sin imagen de perfil

RE:CDX con Problemas

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 21/10/2003 05:55:34
Fabián, podrías enviar la línea donde generas los índices y luego la línea donde haces la búsqueda ?
Saludos,
Gustavo.
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:CDX con Problemas

Publicado por Fabian (4 intervenciones) el 21/10/2003 15:33:35
Les envio linea del programa:
*/*/*/*/ Aunque esta sea una Subrutina que está parametrizada
DBUSEAREA(.t.,dbsetdriver(),"MaeProd", .t., .f.)
IF !FILE("MAEPROD.CDX")
index on codprod tag codprod to maeprod
index on nomprod tag nomprod to maeprod
ENDIF
SET INDEX TO MAEPROD.CDX
**** eN EL pROGRAMA mISMO
mCodProd=Space(13)
@10,10 Say "Código :" Get mCodprod picture "@k A99999A999!!9" Valid estaProd(mCodProd)
Read

***
Function EstaProd(mCodProd)
Local Encontro
If !(Encontro := MaeProd->( DbSeek( mCodProd)))
Mensaje('Producto no existe')
ENdIf
Return encontro
****

**** Lo extraño es que me funciona bien para el resto de los códigos de productos menos para los que empiezan con la serie mencionada anteriormente... EL resto de los programas están identicamente.
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
sin imagen de perfil

RE:CDX con Problemas

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 21/10/2003 15:42:46
Lo único que le agregaría para asegurarme es el DBSetOrder() para estar seguro que estoy buscando con el índice que deseo.
Saludos.
Gustavo
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:CDX con Problemas

Publicado por fabian (4 intervenciones) el 21/10/2003 15:53:11
Como te decía, esto es más complicado, le puse un
dbsetorder(1) en líneas precedentes al seek, para asegurarme, inclusive ya ahora estoy trabajando así....

Select MaeProd
*** Ni siquiera hago referencia al Alias.
MaeProd->( DbSetOrder(1))
Seek mCodProd
**** Usaba antes MaeProd->( DbSeek( mCodProd ))
encontro := MaeProd->( eof())
**** Usaba antes encontro:= MaeProd->( DbSeek( mCodProd))
*** me da la impresión que no es por ahí la cosa... es algo de los indices.

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:CDX con Problemas

Publicado por Armando Estrada Bucio (167 intervenciones) el 21/10/2003 17:42:45
Fabian:

Aunque en tu código no haces uso de muchas facilidades que te da el lenguaje creo que el problema no es por ahí. Se dice que.... la versión que estas usando es de las mas inestables sobre todo con índices CDX, por probar yo me cambiaría a la 5.3b, que por cierto es la última que emitió CA.

Saludos, Armando
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:CDX con Problemas

Publicado por Mauricio Arevalo (152 intervenciones) el 21/10/2003 21:18:43
Fabian:
Porque no recibas la base de datos fisica y compruebas y hay algún registro "corrupto", me ha pasado algunas veces y sobre todo si fue creada con DBASE la estructura.
Eje:
Linea de Comandos DBASE.

Simulemos una Base de Datos de 5000 registros

.USE MiBase
.Copy to NuevaBAse

Si no te copia toda la base y se para en algún registro, ese es el dañado.
(Registro 2356)
Para copiar el resto de la base tenemos:

Go 2357

Copy NExt 5000 to NuevaBase1

Y Listo.

Esto es algo viejito (DBASE) pero depronto.

Saludos,

Mauricio Arevalo
Bogotá (Colombia)




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