El move ser�a la soluci�n m�s f�cil si el campo alfanum�rico tuviera el
n�mero con el mismo tama�o, pero si no recuerdo mal el mensaje inicial, esto
no era as�. Por ejemplo, se pod�an recibir valores como: ':123,25' ,
'123456,78' , ' 12234'.

Si haces un move de un alfanum�rico con esos valores, te dar� error de datos
decimales. F�jate que adem�s est� el problema de los decimales: aunque el
campo alfanum�rico tuviera siempre todos los d�gitos, la coma
imposibilitar�a hacer el move.

Por supuesto se puede ir sacando la parte num�rica, la parte decimal, e ir
metiendolo con varios moves a la variable num�rica, pero no parece algo que
vaya a ocupar 4 l�neas de c�digo, y a�ades posibilidades de error.

Ya que se ha mencionado la elegancia ;), no hay nada menos elegante que un
trozo de sql dentro de c�digo libre, y es cierto que cambiar programas de
rpgle a sqlrpgle solo por esto puede dar que pensar. Para solucionarlo, una
forma elegante ser�a crear una funci�n en un programa de servicio que
convirtiera de car�cter a num�rico, como lo hace %dec en versiones
posteriores de OS400. As� solamente el m�dulo del programa de servicio ha de
ser sqlrpgle. De esta manera, adem�s, cuando se suba de versi�n y se pueda
usar %dec, se puede sustituir el sql de la funci�n por el correspondiente
%dec, para que los programas que usan la funci�n creada no necesiten ser
modificados, y para dejar de utilizar sql para estos 'remiendos'.

Perd�n si me he enrollado, pero... � NECESITO VACACIONES YA ! :))

Saludos.
 
Fernando P�rez
 
Cer�mica Saloni. Departamento de Sistemas


-----Mensaje original-----
De: Francisco Gor [mailto:[EMAIL PROTECTED] 
Enviado el: jueves, 05 de agosto de 2004 15:54
Para: [EMAIL PROTECTED]
Asunto: Re: Error de compilaci�n


Lo primero que se me ocurre es hacerlo facil.

Cuando no disponiamos todavia de funciones (Aquellos tiempos del RPG II) 
esto lo resolviamos con un simple MOVE.
Lo mas tedioso era pasar el string a un array para aislar la parte 
numerica. Afortunadamente ahora dispones de %scan y puedes usar TESTN 
para verificar que la subcadena solo contiene digitos.

Esto es mucho menos elegante que la solucion SQL de Fernando, pero no de 
obliga a cambiar el tipo de compilacion.



Juan Antonio escribi�:

> Buenas tardes.
> Hace unos d�as, un compa�ero del forum me paso con respecto a una
> consulta que realice, lo siguiente:
>
>i = %scan(':': linea)
>
>y luego si
>valor = %dec(%subst(linea: i+1): 15: 2)
>
>o en un solo paso
>
>valor = %dec(%subst(linea: %scan(':': linea) + 1): 15: 2)
>        
>
>He intentado compilar ambas posibilidades y me da un error de 
>compilacion:
>
>*RNF0327 30      3 El primer par�metro para %DEC o %DECH no es v�lido.
>
>que no me aclara mucho.
>
>De los que est�n, �a alguien se le ocurre d�nde est� el problema?
>
>Gracias.
>


-- 
===============================================================
Francisco Gor Baquero

Artes Graficas Novograf, SA

mailto:[EMAIL PROTECTED]
http://www.novograf.com
===============================================================
*Los acentos de este mensaje se han eliminado intencionadamente
=============================================================== 



_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es _____________________________________________________

Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]

_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]

Responder a