Acceso de datos con variables de lenguaje principal

Puede utilizar variables de lenguaje principal, matrices de variables de lenguaje principal y estructuras de host en el programa de aplicación para intercambiar datos entre la aplicación y el DBMS.

Una variable de lenguaje principal es un elemento de datos que se declara en un programa para utilizar dentro de una sentencia de SQL. Puede:

  • Recuperar datos en la variable de lenguaje principal para que los utilice el programa de aplicación.
  • Situar datos en la variable de lenguaje principal para insertarlos en una tabla o cambiar el contenido de una fila.
  • Utilizar los datos de la variable de lenguaje principal cuando se evalúa una cláusula WHERE o HAVING.
  • Asignar el valor de la variable de lenguaje principal a un registro especial. Un registro especial es un área de almacenamiento que Db2 define para que un proceso contenga información a la que las sentencias de SQL pueden hacer referencia.

    Por ejemplo, el registro especial CURRENT SQLID contiene el ID de autorización SQL de un proceso, que se establece en una instrucción SQL. Db2 sustituye el nombre del registro por el valor del ID de autorización cuando se ejecuta la instrucción SQL.

  • Utilizar la variable de lenguaje principal para indicar un valor nulo

El modo de codificar una variable de lenguaje principal varía según el lenguaje de programación que se utiliza. Algunos lenguajes requieren una sección de declaración separada para variables de SQL. En este caso, puede codificar las sentencias BEGIN y END DECLARE SECTION en un programa de aplicación cuando aparezcan declaraciones de variables de acuerdo con las reglas del lenguaje principal. Una sección de declaración de variable de lenguaje principal empieza con la sentencia BEGIN DECLARE SECTION y finaliza con la sentencia END DECLARE SECTION. La variable de lenguaje principal debe ir precedida por: hostvar

La cláusula INTO de la sentencia SELECT nombre una o más variables de lenguaje principal para que contengan los valores de columna devueltos. Para las variables de lenguaje principal y las matrices de variables de lenguaje principal, las variables con nombre corresponden una a una con la lista de nombres de columna en la lista SELECT.

Ejemplo

El ejemplo siguiente utiliza una variable de lenguaje principal para recuperar una única fila de datos.

Iniciar la información de la interfaz de programación de uso general.Supongamos que desea recuperar los valores de las columnas EMPNO, LASTNAME y DEPT de una sola fila de la tabla EMP. Puede definir una variable de lenguaje principal en el programa para que contenga cada columna. La variable de lenguaje principal consta del nombre de variable local, precedido de dos puntos. A continuación, puede nombrar las áreas de datos con una cláusula INTO, tal como se muestra:
EXEC SQL
  SELECT EMPNO, LASTNAME, DEPT
    INTO :CBLEMPNO, :CBLNAME, :CBLDEPT
    FROM EMP
    WHERE EMPNO = :EMPID
END-EXEC.
Finalizar la información de la interfaz de programación de uso general.

Debe declarar las variables de lenguaje principal CBLEMPNO, CBLNAME y CBLDEPT en la parte de declaración de datos del programa. Los tipos de datos de las variables de lenguaje principal deben ser compatibles con los tipos de datos de SQL de las columnas EMPNO, LASTNAME y DEPT de la tabla EMP.

Suponga que no sabe cuántas filas devolverá Db2, o espera que devuelva más de una fila. En cualquier caso, debe utilizar una alternativa a SELECT ... INTO. Utilizando un cursor de Db2, una aplicación puede procesar un conjunto de filas y recuperar filas de la tabla de resultados.