Representación de datos

La representación de los datos puede diferir entre compiladores que no son deIBM® y COBOL for Linux® on x86.

Datos binarios

COBOLIBM Los compiladores utilizan la representación nativa de la plataforma al manejar elementos de datos binarios (BINARY, COMP y COMP-5 ) COMP-4. En Linux x86, los elementos de datos binarios se almacenarán y manipularán en formato little-endian (el dígito menos significativo en la dirección más baja).

Al migrar COBOL aplicaciones de compiladores IBM no compatibles a COBOL for Linux on x86, es posible que obtenga resultados inesperados si su programa accede a datos almacenados en formato big-endian, ya que el compilador y el tiempo de ejecución tratarán los datos como formato little-endian de forma predeterminada.

Puede utilizar la opción BINARY(BE) para informar al compilador COBOL for Linux on x86 para manejar elementos de datos BINARY, COMP y COMP-4 en formato big-endian coherentes con compiladores que no son deIBM que representan elementos binarios como big-endian. Sin embargo, esto tendrá cierta sobrecarga de rendimiento, ya que el compilador necesita convertir los datos a y desde su formato nativo, little-endian. Los elementos de datos COMP-5 no se ven afectados por la opción BINARY(BE) o BINARY(LE) ya que COMP-5 indica un elemento de datos binario nativo que utiliza la representación nativa de la plataforma. Si utiliza una combinación de COMP-5 y otros tipos de datos BINARY/COMP/COMP-4 en el programa, tenga cuidado al utilizar la opción BINARY(BE) . Si un elemento de datos determinado necesita permanecer en representación little-endian (LE) cuando se ha especificado BINARY(BE) , utilice la cláusula NATIVE en la sentencia USAGE .

Nota:
  • Micro Focus Visual Studio y COBOL -IT almacenan BINARY/COMP/COMP-4 datos en formato big endian, independientemente de la plataforma, y COMP-5 datos en el endianismo nativo de la plataforma, por lo que al utilizar COBOL for Linux on x86, es posible que necesite utilizar la BINARY(BE) opción para trabajar con datos de una forma que sea compatible con esos compiladores.
  • Si utiliza IBM MQ, se espera que los parámetros de API estén en formato big endian, por lo que deberá utilizar la opción BINARY (BE) y FLOAT (BE) al trabajar con MQ en Linux.
  • IBM Db2®, y Oracle Pro* COBOL añaden sus propias áreas de datos en el programa COBOL generado para comunicarse con sus bibliotecas cliente. Estas bibliotecas cliente esperan datos en formato nativo little-endian en Linux, incluso si admiten datos de host big-endian. Cuando se trabaja con Db2 o Pro* COBOL, se debe utilizar el formato binario nativo predeterminado (BINARY(NATIVE) o BINARY(LE)).
  • Dado IBMMQ que espera un formato binario diferente al de IBMDb2 y Oracle Pro* COBOL, no se recomienda tener llamadas MQ y SQL en la misma unidad de compilación o compilación por lotes.

Datos nacionales

COBOLIBM Los compiladores utilizan la representación UTF-16 nativa de la plataforma al manejar datos nacionales. En Linux x86, los elementos de datos nacionales se almacenarán y manipularán en UTF-16 formato little-endian.

Al migrar COBOL aplicaciones de compiladores IBM no compatibles a COBOL for Linux on x86, es posible que obtenga resultados inesperados si su programa accede a datos almacenados en formato big-endian, ya que el compilador y el tiempo de ejecución tratarán los datos como formato little-endian de forma predeterminada.

Puede utilizar la opción UTF16(BE) para informar al compilador COBOL for Linux on x86 para manejar elementos de datos nacionales en formato big-endian coherentes con compiladores que no son deIBM que representan elementos de datos nacionales como big-endian. Sin embargo, esto tendrá cierta sobrecarga de rendimiento, ya que el compilador necesita convertir los datos a y desde su formato nativo, little-endian. Si un elemento de datos determinado necesita permanecer en representación little-endian (LE) cuando se ha especificado UTF16(BE) , utilice la cláusula NATIVE en la sentencia USAGE .