La propiedad de programa @DLI permite especificar comportamientos para las llamadas DL/I del programa por medio de un bloque de establecimiento de valores (set-value). Si incluye esta propiedad en un programa, EGL podrá acceder a los detalles relativos a la llamada más reciente a una base de datos DL/I. Para obtener más información, consulte la sección relativa a DLIVar.
En entornos que no CICS, no puede cambiar el PSB de tiempo de ejecución que es el primero planificado en la unidad de ejecución.
Como se muestra en el ejemplo siguiente, la posición de las series en la matriz debe coincidir con la posición de los registros PCB del componente de registro PSB del programa, y cada serie no vacía de la matriz debe ser idéntica al nombre de un registro PCB de la lista de parámetros del programa.
Record PSBRecordPart type PSBRecord {defaultPSBName = "ibmPSB"} // en este ejemplo se emiten los detalles de los registros siguientes ioPCB IO_PCBRecord; dbPCB DB_PCBRecord; // pasado en db2PCB DB_PCBRecord; gsamPCB GSAM_PCBRecord; // pasado en gsam2PCB GSAM_PCBRecord; end program PrintCatalog type basicProgram (GSAM_PCB_parm GSAM_PCBRecord, DB_PCB_parm DB_PCBRecord) { @DLI{ psb = "myPSB", callInterface = CBLTDLI, pcbParms = ["", "DB_PCB_parm", "", "GSAM_PCB_parm", ""] } } myPSB PSBRecordPart;
Si especifica las propiedades pcbParms y psbParm, las direcciones específicas del PCB de la primera alteran temporalmente las direcciones equivalentes de la segunda.
pcbParms = ["", "DB_PCB_parm", "", "GSAM_PCB_parm"]
Para evitar un error en el posicionamiento de los elementos de la matriz si más tarde añade un registro PCB al componente de registro PSB, incluya (sin excepciones) un elemento de matriz para cada registro PCB del componente de registro PSB.
Si un registro PCB del componente de registro PSB es una redefinición de otro registro PCB de ese componente, el registro original y el registro redefinido representan la misma área de memoria y se cuentan sólo una vez al construir la matriz de pcbParms.
Record PSBDataRecord psbName char(8); psbRef int; end
Program Prog1 ( psbData PSBDataRecord ) { @DLI (psbParm = "psbData" ) }
Si especifica las propiedades pcbParms y psbParm, las direcciones específicas del PCB de la primera alteran temporalmente las direcciones equivalentes de la segunda.
El nombre y la dirección recibidos en el programa se asignan automáticamente a la variable de sistema DLILib.psbData.
Puede que el código migrado desde VisualAge Generator no funcione como antes a menos que establezca handleHardDLIErrors en no, lo que establece la variable en 0.
Para obtener información detallada, consulte las secciones DLIVar y Manejo de excepciones.
Conceptos relacionados
Soporte de bases de datos DL/I
Consulta relacionada
DLIVar
Manejo de excepciones
Propiedades de componentes de registro PCB