Cómo: Referencia: |
Los archivos HOLD rellenan los valores de número completo binario y los valores de datos decimales empaquetados a un margen completo de palabra. Por ejemplo, se almacena un campo de número completo de tres dígitos (I3), como cuatro bytes en un archivo HOLD. Para que programas de tercera generación, tal como COBOL, puedan leer archivos HOLD de manera exacta, puede ser que necesite guardar los campos en el archivo HOLD sin cualquier relleno.
Para suprimir el relleno de campos en el archivo HOLD, debe reformatear los campos en la solicitud para conseguir reemplazar los formatos ACTUAL predeterminados que correspondan a los formatos USAGE en el archivo máster:
SET HOLDLIST = PRINTONLY TABLE FILE filename display_command fieldname/[In|Pn.d] . . ON TABLE HOLD AS name FORMAT INTERNAL END
donde:
Fíjese que HOLD FORMAT INTERNAL no afecta ni el punto flotante de precisión doble (D) ni el punto flotante de precisión sencilla (F).
Para una ilustración, consulte Cómo generar un archivo HOLD con HOLD FORMAT INTERNAL.
La sintaxis es
bytes = INT (n/2) + 1
donde:
Para evitar resultados incorrectos, asegúrese de que el formato que especifica es lo suficientemente grande para contener los valores de datos.
En este ejemplo, los valores de ACTUAL para RETAIL_COST, DEALER_COST y SEATS se rellenan para una palabra completa. Los campos alfanuméricos también ocupan palabras completas.
TABLE FILE CAR PRINT CAR COUNTRY RETAIL_COST DEALER_COST SEATS ON TABLE HOLD AS DJG END
Esta solicitud genera el siguiente archivo máster:
FILE=DJG, SUFFIX=FIX SEGMENT=DJG, SEGTYPE=S0 FIELDNAME=CAR ,ALIAS=E01 ,USAGE=A16 ,ACTUAL=A16 ,$ FIELDNAME=COUNTRY ,ALIAS=E02 ,USAGE=A10 ,ACTUAL=A12 ,$ FIELDNAME=RETAIL_COST ,ALIAS=E03 ,USAGE=D7 ,ACTUAL=D08 ,$ FIELDNAME=DEALER_COST ,ALIAS=E04 ,USAGE=D7 ,ACTUAL=D08 ,$ FIELDNAME=SEATS ,ALIAS=E05 ,USAGE=I3 ,ACTUAL=I04 ,$
En este ejemplo, DEALER_COST y RETAIL_COST se definen en el archivo máster como campos D, pero la solicitud anula RETAIL_COST como un campo I2 y DEALER_COST como un campo P3.
SET HOLDLIST=PRINTONLY TABLE FILE CAR PRINT CAR COUNTRY RETAIL_COST/I2 DEALER_COST/P3 SEATS/I1 ON TABLE HOLD AS HINT3 FORMAT INTERNAL END
Esto genera el siguiente archivo máster:
FILE=HINT3, SUFFIX=FIX SEGMENT=HINT3, SEGTYPE=S0 FIELDNAME=CAR ,ALIAS=E01 ,USAGE=A16 ,ACTUAL=A16 ,$ FIELDNAME=COUNTRY ,ALIAS=E02 ,USAGE=A10 ,ACTUAL=A10 ,$ FIELDNAME=RETAIL_COST ,ALIAS=E03 ,USAGE=I6 ,ACTUAL=I02 ,$ FIELDNAME=DEALER_COST ,ALIAS=E04 ,USAGE=P4 ,ACTUAL=P02 ,$ FIELDNAME=SEATS ,ALIAS=E05 ,USAGE=I4 ,ACTUAL=I01 ,$
Los formatos ACTUAL para los campos anulados son I2, P2 y I1. DEALER_COST tiene un ACTUAL de P2 porque P3, la anulación de formato, significa que se pueden guardar tres dígitos mostrados en dos dígitos actuales. Compruebe que el campo alfanumérico tampoco esté relleno.
WebFOCUS |