4.1. SQL hospedado

* Puede haber pequeñas diferencias dependiendo del lenguaje de programación concreto que estemos considerando.

Para crear y manipular una base de datos relacional necesitamos SQL. Además, si la tarea que queremos hacer requiere el poder de procesamiento de un lenguaje de programación como Java, C, Cobol, Fortran, Pascal, etc., podemos utilizar el SQL hospedado en el lenguaje de programación elegido. De este modo, podemos utilizar las sentencias del SQL dentro de nuestras aplicaciones, poniendo siempre delante la palabra reservada EXEC SQL*.

Para poder compilar la mezcla de llamadas de SQL y sentencias de programación, antes tenemos que utilizar un precompilador. Un precompilador es una herramienta que separa las sentencias del SQL y las sentencias de programación. Allá donde en el programa fuente haya una sentencia de acceso a la base de datos, se debe insertar una llamada a la interfaz del SGBD. El programa fuente resultante de la precompilación ya está únicamente en el lenguaje de programación, preparado para ser compilado, montado y ejecutado.

En  la  figura  que  encontraréis  en  la  página  siguiente  podéis  observar  este funcionamiento.

Todas las sentencias de definición, manipulación y control que hemos visto para el SQL se pueden utilizar en el SQL hospedado, pero precedidas de la cláusula EXEC SQL. Sólo habrá una excepción: cuando el resultado de una sentencia  SQL obtenga más  de  una fila o  haga  referencia también a  más de  una, deberemos trabajar con el concepto de cursor.

Un cursor se tiene que haber declarado antes de su utilización (EXEC SQL DECLARE nombre_cursor CURSOR FOR). Para utilizarlo, se debe abrir (EXEC SQL OPEN nombre_cursor),  ir  tomando  los  datos  uno  a  uno,  tratarlos  (EXEC SQL FETCH nombre_cursor INTO),  y  finalmente,  cerrarlo  (EXEC SQL CLOSE nombre_cursor).

UOC SQL hospedado