Clipper/FiveWin - Sigue el problema.

 
Vista:

Sigue el problema.

Publicado por Hernan (7 intervenciones) el 04/10/2006 14:43:30
Les agradezco por las rtas. Pero el valor del campo guardado en BD es tipo CHAR. Yo no se si realmente hay un problema en el DBSEEK con el signo "-" y lo corta el caracter a partir de ahi.

Ej:

ART-001
ART-002
ART-003

No encuentra nada.
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:Sigue el problema.

Publicado por Raul (44 intervenciones) el 04/10/2006 15:11:39
Hola:
Si la clave de tu dbf es tipo character, debes leerla con una variable tambien tipo character pero que tenga exactamente la misma longitud.

Supongamos que tu campo clave CODIGO es CH 10

cCODIGO:=LEFT("ART"+"-0001"+SPACE(10),10) // para que la variable tenga la misma longitud del campo clave.

ARTICULO->(DBSSEK(cCODIGO))

Nota: Si tu campo es tipo character, cada constante que le quieras asignar debe ir entre comillas.
No es lo mismo cCODIGO:="ART"+etc.. // Asi asisgnas una constante..

a asignar cCODIGO :=ART+etc.. // Así estás asignando a cCODIGO el contenido de una variable llamada ART
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:Sigue el problema (aun).

Publicado por Hernan (7 intervenciones) el 04/10/2006 16:49:07
Tal vez no me explique bien en el concepto. Les cuento tengo una BD ARTICULOS y otra BD LINART, que el campo cREF para ambas es de la misma longitud yo necesito usar el valor guardado en la tabla LINART ( ART-0001 ) para buscarlo en la tabla ARTICULOS que tiene el mismo valor. pero el DBSEEK no me trae el valor, para otros casos que no sean estos andan bien, por eso mi sospecha es por el famoso guion medio "-".

(LINART, contiene guardado ( ART-0001)
( ARTICULOS ), contiene guardado:
Tipos CHAR
ART-0001
ART-0002
ART-0003

Si hago el Dbseek no me trae nada.

Saludos.
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:Sigue el problema (aun).

Publicado por Raul (44 intervenciones) el 04/10/2006 17:50:44
Entonces dices que tienes LINART.DBF con un campo cREF (SUPONGAMOS CH 8) y que tambien tienes ARTICULOS.DBF con otro campo cREF (tambien supongamos CH 8)
A la base ARTICULOS la tienes INDEXADA por el campo cREF, verdad?.. OK..

Si la base ARTICULOS tiene varios indices, antes de leer activa el indice que corresponda a cREF... por ejemplo ARTICULOS(DBSETORDER(1)) si es el 1er. indica.
Lees el archivo LINART y luego si haces ARTICULOS->(DBSEEK(LINART->cREF))............ Tiene que funcionar ..

El guion no tiene nada que ver en que no encuentres el registro, un guion dentro de campo alfanumerico es lo mismo que cualquier letra o numero.. es un charater más.
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:Sigue el problema (aun).

Publicado por Hernan (7 intervenciones) el 04/10/2006 18:06:01
Lo tengo indexado por Upper ( cRef ), inicialmente lo hacia asi como me decis vos.

( ARTICULOS )->( DBSETORDER ( 1 ) )
( ARTICULOS )->( DBSEEK ( ( LINART )->cRef ) )

anda para todos, pero extrañamente cuando tengo mas de un articulo con el maldito "-" que empiecen igual no anda. Increible. si tuviera un SOLO articulo con el "-" anda bien, por eso mis sospechas por el tema de ese caracter.
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:Sigue el problema (aun).

Publicado por Miguel Salas (53 intervenciones) el 04/10/2006 19:31:36
Hernan.

Tube ese problema, la verdad yo mejor le quité los guiones. En tu caso sino puedes hacer eso, prueba la funcion OemToAnsi(), quizas por alli vaya la solución.

cArt := OemToAnsi( ( LINART )->cRef ))
( ARTICULOS )->( DBSEEK ( cArt ) )

Suerte
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:Sigue el problema (aun).

Publicado por Hernan (1 intervención) el 04/10/2006 21:18:27
Te agradezco Miguel pero sigue sin andar, lo raro es que se da cuento tengo guardado los siguientes articulos.

ART
ART-0001
ART-0002

si no estuviera el ART andaria bien la busqueda, rarisimo.
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:Sigue el problema (aun).

Publicado por Raul (44 intervenciones) el 05/10/2006 01:07:16
Y porque lo indexas con UPPER??? .. Porque no indexas simplemente con cREF?, lo único que haces es transformar a mayúsculas los campos para generar EL INDICE, pero si lo que deseas es mostrarlo con mayúsculas igual tendras que volver a hacerle UPPER al campo antes de desplegarlo o antes de grabarlo.

Si tu indice está con UPPER(cREF).. cuando leas tambien deberías usar el UPPER porque es muy probable que el campo con el que lees no esté todo en mayúsculas.

El guion dentro de un campo no tiene absolutamente nada que ver con tu problema, tengo muchisimos indices de Domicilios o Teléfonos u otros campos alfanumericos que tienen guiones y no tengo ningún problema.

Yo creo que deberías dejar de usar el UPPER en el indice, en todo caso si deseas almacenar el dato en mayúsculas, lo que tienes que hacer es utilizar en el GET un Pict "@!" que solo acepta datos alfabéticos en mayúsculas.
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:Sigue el problema.

Publicado por ANTONIO MARTIN (31 intervenciones) el 10/10/2006 01:50:12
Con la información que he leido de las respuestas, cosidero que si tienes ART y te causa problemas, prueba con SET EXACT ON/OFF o a la hora de buscar agrega a la variables los blancos faltates ejemplo:
mivariable=PADR("ART",10," ")

Espero te ayude, Suerte....
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