Compartir vía


SQL incrustado

La primera técnica para enviar instrucciones SQL a DBMS es SQL insertado. Dado que SQL no usa variables e instrucciones de control de flujo, a menudo se usa como un sublenguaje de base de datos que se puede agregar a un programa escrito en un lenguaje de programación convencional, como C o COBOL. Esta es una idea principal de SQL insertado: colocar instrucciones SQL en un programa escrito en un lenguaje de programación host. De forma resumida, las siguientes técnicas se usan para insertar instrucciones SQL en un lenguaje host:

  • Las instrucciones SQL insertadas se procesan mediante un precompilador SQL especial. Todas las instrucciones SQL comienzan con un introductor y terminan con un terminador, que marcan la instrucción SQL para el precompilador. El introductor y el terminador varían con el idioma del host. Por ejemplo, el introductor es «EXEC SQL» en C y «&SQL(» en MUMPS, y el terminador es un punto y coma (;) en C y un paréntesis derecho en MUMPS.

  • Las variables del programa de aplicación, denominadas variables de host, se pueden usar en instrucciones SQL insertadas siempre que se permitan constantes. Se pueden usar en la entrada para adaptar una instrucción SQL a una situación determinada y en la salida para recibir los resultados de una consulta.

  • Las consultas que devuelven una sola fila de datos se controlan con una instrucción SELECT singleton; esta instrucción especifica tanto la consulta como las variables host en las que se van a devolver datos.

  • Las consultas que devuelven varias filas de datos se controlan con cursores. Un cursor realiza un seguimiento de la fila actual en un conjunto de resultados. La instrucción DECLARE CURSOR define la consulta, la instrucción OPEN inicia el procesamiento de consultas, la instrucción FETCH recupera filas sucesivas de datos y la instrucción CLOSE finaliza el procesamiento de consultas.

  • Mientras un cursor está abierto, las instrucciones de actualización y eliminación posicionadas se pueden usar para actualizar o eliminar la fila seleccionada actualmente por el cursor.

Esta sección contiene los temas siguientes.