La interfaz de lenguaje de datos (lenguaje de datos / I, DL / I, lenguaje de datos / interfaz, lenguaje de datos / uno [1] ) es el sistema de lenguaje utilizado para acceder a las bases de datos IMS de IBM y su sistema de comunicación de datos.
Se implementa desde cualquier idioma realizando llamadas a un código auxiliar de software, DFSLI000. Este stub tiene puntos de entrada para manejar una variedad de lenguajes de programación, por ejemplo, llamar a CBLTDLI desde un programa COBOL . Este código auxiliar está vinculado al programa que realiza la llamada, transmite la solicitud al sistema IMS y devuelve los resultados y un código de estado.
En cualquier base de datos IMS de función completa, el elemento más pequeño que se puede recuperar es un segmento . Cada segmento se compone de campos , uno de los cuales, normalmente, será un campo clave. Los segmentos están ordenados jerárquicamente en la base de datos, siendo el tipo de segmento de nivel más alto un segmento raíz. Se permiten 255 tipos de segmentos diferentes, en hasta 15 niveles, en cualquier base de datos. Un registro de base de datos consta de un segmento raíz específico y todos sus segmentos secundarios dependientes; no hay límite para el número de segmentos en un registro o para el número de registros en una base de datos (aparte de las limitaciones físicas del espacio de almacenamiento).
La estructura de cualquier base de datos se presenta al programa de aplicación como un PCB (Bloque de comunicación del programa), y esto se utiliza como uno de los parámetros que se pasan al stub. Otros tipos de PCB se utilizan para enviar y recibir mensajes de procesamiento de transacciones , acceder y escribir en la pantalla VDU del usuario , e imprimir informes, etc.
Al acceder a un segmento de la base de datos, el programa de aplicación también utiliza un SSA (argumento de búsqueda de segmento) como parámetro, para especificar el segmento o segmentos que necesita. Por lo general, este contendría el tipo de segmento requerido y el contenido de cualquier campo clave.
Para todos los idiomas excepto PL / I , el primer parámetro en una llamada es el Código de función , un campo de cuatro caracteres, por ejemplo: “ GU
” (Obtener único), “ GN
” (Obtener siguiente), “ REPL
” (Reemplazar) y “ ISRT
” (Insertar). Con PL / I, debido a que este lenguaje no marca el último parámetro con un '1' en el bit 0, el primer parámetro debe ser una palabra completa (Bandeja fija (31)) que contenga el número de parámetros siguientes.
Una llamada típica de un programa COBOL podría ser . El programa esperaría automáticamente hasta que los datos solicitados fueran recuperados y colocados en el área de segmento. El código de estado contenido dentro de la PCB se actualizaría con espacios en blanco (si todo salió bien) o algún código informativo o de error.CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA
Una llamada típica de un programa PL / I podría ser .CALL PLITDLI(FOUR, GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA);
Referencias
- ^ "Productos y componentes de IBM z / VSE" . IBM . Consultado el 27 de junio de 2009 .