Koenma's Laboratory




SQL inmerso en C/C++ (Parte I)

10 de julio de 2007

Índice
  1. Introducción
  2. Sentencias Ejecutables y No Ejecutables
  3. Área de Comunicación SQL
  4. Variables huéspedes
  5. Representación de valores nulos
  6. Manipulación de Datos sin usar cursores
  7. Programación con cursores
  8. SQL estático y SQL dinámico


Introducción

La mayoría de productos SQL permiten la ejecución de instrucciones SQL de una manera directa. Es decir, de una forma interactiva desde una terminal de línea. Sin embargo, también es posible la ejecución de las mismas como parte de un programa de aplicación. Lo cual, quiere decir, que dichas instrucciones se encuentren entremezcladas con las instrucciones del lenguaje de programación de dicho programa. Esto se conoce como SQL inmerso en un lenguaje de programación.

Este caso de la incrustación del SQL en un lenguaje de programación determinado, tal como el C, nos brinda la capacidad de realizar aplicaciones de acceso a datos eficaces y de gran potencia mediante la posibilidad de ambos lenguajes. En adelante, hablaremos del lenguaje C como el lenguaje anfitrión.

El entorno de SQL incrustado en C, conocido como Pro*C, se asocia a las aplicaciones referentes al conocido gestor de bases de datos Oracle. Dicho gestor proporciona acceso a las bases de datos mediante un programa en C utilizando un preprocesador, el cual transforma las sentencias de Pro*C a sentencias de C. Estas sentencias tendrán acceso a las librerías ofrecidas por el gestor Oracle para la gestión de datos. Esto supone una ventaja por la mayor legibilidad de código a la hora de programar, ya que evitamos una compleja sintaxis que puede tener las llamadas a una determinada biblioteca.

A su vez, aparece también una desventaja. El uso de un preprocesador supone la inserción de sentencias que no tienen relación con el lenguaje. Esto es, el código resultante después del preprocesado complica la tarea de depuración de programas. Lo cual, su uso no favorece en la claridad del código en C.

Sentencias Ejecutables y No Ejecutables

Las sentencias del SQL incrustado en C van precedidas por la sentencia EXEC SQL para distinguirlas de las instrucciones del lenguaje anfitrión y terminan con un punto y coma.

Una sentencia SQL ejecutable puede aparecer en cualquier parte en donde aparezca una instrucción del lenguaje C. No toda sentencia SQL es ejecutable. Hay sentencias que son puramente declarativas, como por ejemplo:

EXEC SQL BEGIN DECLARE SECTION; /* comienzo de declaración de variables */

    short id;
    char name[10];
    short dept;
    double salary;
    char hostVarStmtDyn[50];

EXEC SQL END DECLARE SECTION; /* finalizacion de declaración de variables */

La declaración de las variables a usar es lo primero es la primera tarea en la realización del programa.

Etiquetas:

 
Posteado por Koenma a las 20:06, |                  Ir al Inicio | Ir Arriba

0 Comentario(s):


Publicar un comentario