La función de sistema sysLib.convert convierte datos entre los formatos EBCDIC (sistema principal) y ASCII (estación de trabajo) o bien realiza la conversión de página de códigos dentro de un único formato. Puede utilizar sysLib.convert como nombre de función en una sentencia de invocación de función.
Los registros de longitud variable sólo se convierten para la longitud del registro actual. La longitud del registro actual se calcula utilizando el elemento numElementsItem del registro o se establece a partir del elemento lengthItem del registro. Se produce un error de conversión y el programa finaliza si el registro de longitud variable finaliza en medio de un campo numérico o un carácter DBCHAR.
Puede utilizar el componente de opciones de enlace para solicitar que se genere la conversión de datos automática para llamadas remotas, para iniciar transacciones asíncronas remotas o para el acceso a archivos remotos. La conversión automática se realiza siempre utilizando la estructura de datos definida para el argumento que se está convirtiendo. Si un argumento tiene varios formatos, no solicite la conversión automática. En su lugar, codifique el programa para llamar explícitamente a sysLib.convert con las definiciones de registro redefinidas que se correlacionan correctamente con los valores actuales del argumento.
Record RecordA record_type char(3); item1 char(20); end Record RecordB record_type char(3); item2 bigint; item3 decimal(7); item4 char(8); end Program ProgramX type basicProgram myRecordA RecordA; myRecordB RecordB {redefines = "myRecordA"}; myConvTable char(8); function main(); myConvTable = "ELACNENU"; // conversion table for US English if (myRecordA.record_type == "00A") sysLib.convert(myRecordA, "L", myConvTable); else; sysLib.convert(myRecordB, "L", myConvTable); end call ProgramY myRecordA; end end
Consulta relacionada
Conversión de datos
Biblioteca SysLib de EGL
sysVar.callConversionTable