Duda sobre visualizacion de variable s9(15)v99 comp-3

Todo lo relacionado con Cobol en ambientes batch, online(CICS,IMS) con bases de datos(DB2, Adabas) etc.
Responder
HUILCAMINA
Usuario
Usuario
Mensajes: 4
Registrado: 20 Nov 2013, 08:58
País: España
Ciudad: Madrid
Ocupación: Programador

Duda sobre visualizacion de variable s9(15)v99 comp-3

Mensaje por HUILCAMINA » 24 Abr 2014, 05:49

Hola muy buenas.

Estoy teniendo un problema para la visualizacion de una variable que leo de una tabla DB2 y escribo en un fichero.
Les pongo en antecedentes.
En la tabla DB3 la variable está definida como DEC (13,02).
En el programa la variable está definida como S9(15)V99.
Leo directamente de la entidad el valor de 2.25 pero al momento de visualizar dicho valor en el fichero lo veo así:
0000000022E
y al desplegar con HEX ON lo visualizo así:
000000022E
FFFFFFFFFC
0000000225

¿porqué es que no se visualiza 225? entiendo que al momento de verlo con HEX ON la C quiere decir que es positivo, pero si la variable no está definida como comp-3 sino simplemente como s9(15)v99....

Espero su ayuda ya que la persona que tiene que recibir el fichero tratado desde nuestro sistema me argumenta que no está bien.

Muchas Gracias.

riloama
Colaborador
Colaborador
Mensajes: 187
Registrado: 02 Sep 2008, 18:39
Ubicación: Caracas - Veenzuela

Re: Duda sobre visualizacion de variable s9(15)v99 comp-3

Mensaje por riloama » 24 Abr 2014, 07:48

Hola Huilcamina

es correcto que veas el ultimo byte en hexa como C5.
La explicacion va mas abajo.

Description of the Signed Data Type
A Signed field is composed of regular EBCDIC numeric characters, one character per byte, for all the digits of the field except the one that holds the sign, either the most-significant (sign leading) or the least-significant (sign trailing) digit -- usually the least-significant digit. The digit that holds the sign combines, or "over punches" the sign of the number onto that digit. (See note 2). This saves one byte that the sign would otherwise occupy. The value of that digit is stored as a binary value, and is OR'd with the sign code, which is D0 hex for negative numbers, C0 hex for positive values, and F0 hex for "unsigned" values. (See note 3 below for an alternative viewpoint.)
Saludos

riloama

HUILCAMINA
Usuario
Usuario
Mensajes: 4
Registrado: 20 Nov 2013, 08:58
País: España
Ciudad: Madrid
Ocupación: Programador

Re: Duda sobre visualizacion de variable s9(15)v99 comp-3

Mensaje por HUILCAMINA » 24 Abr 2014, 11:20

Muchas Gracias, lo confirmo sois unos cracks.

hasta luego.

riloama
Colaborador
Colaborador
Mensajes: 187
Registrado: 02 Sep 2008, 18:39
Ubicación: Caracas - Veenzuela

Re: Duda sobre visualizacion de variable s9(15)v99 comp-3

Mensaje por riloama » 24 Abr 2014, 15:21

Huilcamina,

en el titulo pusiste: 'Duda sobre visualizacion de variable s9(15)v99 comp-3' y en el texto del mensaje aclaraste que el campo es ' S9(15)V99.'.

Digo esto, porque la respuesta es valida si y solo si el campo tiene formato display y no comp-3.
Saludos

riloama

Responder