Page 1 of 1

Nueva versión xharbour y autoincrementales

Posted: Wed Dec 05, 2007 2:36 pm
by fgondi
Hola,

Uso Advantage 8.1 en modo servidor y en las tablas tengo creado un campo en formato autoincremental.

He actualizado a la nueva versión de fivewin y ahora tengo problemas al leer dicho campo.
Un simple print de ese campo me retorna asceriscos.

Code: Select all

? Articulo->Id
Gracias por vuestro tiempo

Posted: Wed Dec 05, 2007 3:08 pm
by Antonio Linares
Fernando,

Te recomiendo que le envies un email a Brian Hays bhays@abacuslaw.com ya que es un gran experto de ADS y siempre usa e investiga las versiones más recientes de ADS, además de tener él, contacto directo con los desarrolladores de ADS

Posted: Wed Dec 05, 2007 5:26 pm
by fgondi
Antonio,

Ya le he enviado el correo a Brian Hays.

Aunque el problema lo tengo desde que he actuliazado fivewin y xharbour.

Antes usaba Ads 8.1 y Fivewin de Marzo con su correspondiente xharbour y funcionaba correctamente.

Posted: Wed Dec 05, 2007 6:42 pm
by fgondi
Antonio,

Ya encontre la solución.

El problema es que la función str, por defecto, transforma a 10 digitos y ahora necesito transforma a 11, osea cambiar en todos los sitios que tengo str(Articulo->Id) por Str(Articulo->Id, 11)

Las comprobaciones usando este valor funcionan bien, por ejemplo Articulo->Id==nId

El hecho de que no funcione un simple print (?) o un simple browse (sin que esa columna tenga transform), no se que puede ser, me imagino que para presentarlo se convierta internamente a caracteres

Gracias por tu tiempo y dedicación.

Posted: Wed Dec 05, 2007 8:33 pm
by Antonio Linares
Fernando,

> cambiar en todos los sitios que tengo str(Articulo->Id) por Str(Articulo->Id, 11)

Podrias buscar y reemplazar Str() por Str11() en tus PRGs y que Str11() llame a Str() usando 11 como segundo parámetro.

Para comprender mejor lo que ocurre: el contenido numérico de ese campo mide 11 dígitos ? Puedes poner un valor de ejemplo ? gracias

Prueba a hacer Len() de ese campo, a ver que valor da

Posted: Thu Dec 06, 2007 1:18 am
by fgondi
Antonio,

>Podrias buscar y reemplazar Str() por Str11() en tus PRGs y que Str11() llame a Str() usando 11 como segundo parámetro.

jeje, Me has leido el pensamiento. Es lo que tenia pensado hacer, escribí lo otro para intentar ser mas claro en la solución

>Para comprender mejor lo que ocurre: el contenido numérico de ese campo mide 11 dígitos ? Puedes poner un valor de ejemplo ? gracias

Eso es lo raro. El contenido no llega ni por asomo a 11 dígitos. Un ejemplo es con el valor 510515

>Prueba a hacer Len() de ese campo, a ver que valor da
El campo es un valor numérico y por tanto no puedo aplicarle la función len directamente.

El len(str11(Articulo->Id)) devuelve 11, como era de esperar
El len(str(Articulo->Id)) devuelve 4. Cuatro astericos