Guía de Implantación de la Interfaz CORVU dbCGI

[Contenido]

[Anterior] [Siguiente]

 


Introducción 

La interfaz dbCGI fue probada para el presente Trabajo de Graduación en las plataformas Windows NT y Windows95.

Para el primer caso se realizaron pruebas en una PC con el sistema operativo Windows NT 4.0 (Server) y dos tipos de servidores Web: OmniHTTPd Professional y el Internet Information Server 2.0 de Microsoft (configurado para soportar WinCGI); con acceso a las base de datos que soportan ODBC, tales como: Access, FoxPro, Visual FoxPro, Paradox, Btrieve, dBase, Excel, etc.

En el caso del sistema operativo Windows95, se configuró una PC con dicho sistema operativo y el servidor Web OmniHTTPd, el cual soporta WinCGI 1.3, con acceso a las bases de datos que soportan ODBC antes mencionadas.

A continuación, se desarrolla una guía práctica para poder implantar la interfaz dbCGI en la plataforma Windows y Unix. Se especifican los pasos necesarios para instalar y

configurar adecuadamente dicha interfaz. Además, se incluye una descripción completa del uso de los subcomandos dbCGI

Instalación

Adquisición del Software

El software de la interfaz dbCGI puede adquirirse gratuitamente en el siguiente sitio Web de Corvu Pty Ltd (Australia):

Después de haber obtenido el software, descomprímalo como se indica a continuación:

  • …/<dist-dbcgi>/tar -xvf dbcgi.tar.gz
  • Donde <dist-dbcgi> es el directorio donde se bajó el archivo de distribución dbCGI.

  • C:\…\< dist-dbcgi >\pkunzip.exe -d dbcgi.zip
  • Para Windows

    Una vez que haya descomprimido el archivo de distribución de la versión ODBC de dbCGI, copie o mueva el archivo odbccgi.exe al directorio de escritos WinCGI de su servidor Web.

    Para Unix

    Antes de compilar e instalar dbCGI en la plataforma Unix, debe asegurarse que estén instalados y configurados adecuadamente los productos para acceder SQL dinámico desde el lenguaje C para los respectivos DBMS. En el caso de Informix y Progress, se requiere de los productos ESQL/C; para Sybase, las biblioteca DBLibs y para Oracle SQL*Net (opcional cuando dbCGI está instalado en el mismo equipo del servidor Web).

    Realice los siguientes pasos para compilar e instalar dbCGI en Unix:

     

    1. Edite el archivo Makefile y modifique las variables respectivas para reflejar la configuración de su sistema y DBMS.

    Nota:

    Si cambia la variable CC a un valor diferente a GNU C, el cual puede ser el compilador por defecto de su sistema (para los casos de DBUX/88Open, 386 BSD, NetBSD y Linux), deberá quitar como comentario la variable GLIBS.

    2. Ejecute uno de los siguientes comandos de acuerdo al DBMS instalado en su equipo:

    make dbqdbcgi (para DBQ)

    make infdbcgi (para Informix)

    make ingdbcgi (para Ingres)

    make ora6dbcgi (para Oracle 6)

    make ora7dbcgi (para Oracle 7)

    make prodbcgi (para Progress)

    make sybdbcgi (para Sybase)

    Después de haber ejecutado exitosamente el comando make, se habrá creado un archivo con el mismo nombre del argumento que especificó. Por ejemplo, para el caso de Oracle, al ejecutar make ora7dbcgi se crea el archivo ora7dbcgi. Éste es el programa CGI de dbCGI.

    Nota:

    Si el comando make fallara, asegúrese de haber especificado correctamente en el archivo Makefile los valores de las variables correspondientes a su sistema y DBMS.

    3. Asegúrese de que el archivo del programa CGI que se creó en el paso anterior, posea el atributo de ejecución. Puede emplear el comando chmod 755 <prog-dbcgi>.

    4. Copie o mueva el archivo del programa CGI al directorio de escritos CGI del servidor Web.

    Prueba de la Instalación

    Después de haber instalado dbCGI en el servidor Web, puede hacer una prueba de ejecución de dicha interfaz como se explica a continuación:

    1. Cree un archivo dbCGI sencillo en el directorio raíz de documentos HTML del servidor Web, que contenga el siguiente formato HTML: <html><body><h1>Holamundo!</h1></body></html>
    2. Abra el archivo de prueba proporcionando el siguiente URL en el browser:
  • http://<servidor-www>/<dir-cgi>/<prog-dbcgi>/<archivo >

    Donde:

  • <servidor-www> :

    es el nombre o dirección IP del servidor Web.

    <dir-cgi> :

    es el nombre del directorio de escritos CGI del servidor Web, donde se encuentra el programa ejecutable de dbCGI.

    <prog-dbcgi> :

    es el nombre del programa ejecutable de dbCGI, correspondiente a la base de datos.

    <archivo > :

    es el nombre del archivo dbCGI (.sql ó .cgi) de prueba.

     

    Si no logra ver los resultados esperados, asegúrese de haber seguido correctamente todos las instrucciones previas de instalación y/o compilación.

    Uso y Aplicación de dbCGI

    Formato de los Archivos dbCGI

    El formato de los archivos dbCGI es una extensión del formato estándar HTML, el cual soporta las etiquetas especiales <sql> y </sql>; así como también, especificaciones de formatos que comienzan con el carácter %.

    Subcomandos SQL del dbCGI

    DbCGI trabaja con ciertos subcomandos SQL para ejecutar acciones sobre una base de datos, los cuales son de la forma:

  • <sql subcomando>

    PARAM1=valor1

    PARAM2=valor2

    ….

    PARAMn=valorn

    </sql>

  • A diferencia de las etiquetas HTML, la etiqueta <sql subcomando> debe escribirse solamente en letras minúsculas.

    Cada pareja "PARAM=valor" que se especifican en un subcomando SQL de dbCGI, debe escribirse en una nueva línea. El espacio en blanco es significativo el la línea y los nombres del parámetro deben escribirse en mayúsculas.

    Cada DBMS puede reconocer diferentes parámetros para cada uno de los subcomandos SQL.

    A continuación, se describen todos los subcomandos SQL en el orden en que pueden ser utilizados dentro de un archivo dbCGI, para alguna aplicación CGI. Con el propósito de ilustrar el uso de dichos subcomandos, se incluyen ejemplos con ODBC y base de datos Oracle. Para mayor información sobre los demás DBMS, remítase a la documentación provista por Corvu con el software de dbCGI, o bien al sitio Web:

    http://www.corvu.com.au/dbcg/doc/sqlsub.html

    Validación de argumentos y campos de formularios - <sql valarg n>, <sql valform campo>

    El subcomando valarg sirve para examinar la validez de un argumento, donde n es el número del argumento a validar (desde el número 1). El subcomando valform examina la validez del un campo del formulario HTML, donde campo es el nombre del campo del formulario que se recibe.

    Nota: Los datos de formularios HTML son recibidos a través del método POST.

    Los subcomandos de validación reconocen los parámetros siguientes: CLASS, MAXCHARS, MINCHARS, FORBIDDEN y RANGE.

    En el siguiente ejemplo se valida el argumento número 1, permitiendo que contenga caracteres visibles, espacio en blanco y el carácter tabulador, a excepción de los caracteres $,%, y &. En caso que fallara la validación, se despliega un encabezado y un mensaje de error con el valor actual del argumento (%v).

  • <sql valarg 1>

    CLASS=TABBEDTEXT

    FORBIDDEN=$%&

    FORMAT=<H1> Valor inválido </H1>El valor %v no es válido.

    </sql>

     

     

     

  • Iniciación del DBMS - <sql init>

    El subcomando init realiza cualquier inicialización requerida por el DBMS sin conectarse a cualquier dato. Los parámetros válidos que están disponibles con este subcomando y sus respectivos significados, varían dependiendo del DBMS en uso.

    Debe usar el subcomando init antes de usar el subcomando connect.

    ODBC:

    No reconoce algún parámetro en la sección init, por lo cual se utiliza así:

  • <sql init> </sql>
  • ORACLE:

    Los parámetros válidos son: ORACLE_HOME, ORACLE_SID y TWO_TASK, los cuales corresponden a las variables de entorno del mismo nombre, como se muestra en el siguiente ejemplo:

  • <sql init>

    ORACLE_HOME=/vol1/uca

    ORACLE_SID=UCA

    </sql>

  • Conexión a una base de datos - <sql connect id_con>

    El subcomando connect sirve para conectarse a una base de datos SQL. Debe emplearse después del subcomando init. Donde id_con es un nombre de identificación que se le asigna a la nueva conexión.

    Al igual que el subcomando init, los parámetros válidos para connect varían dependiendo de la base de datos que se utilice.

    ODBC:

    En el siguiente ejemplo de hace la conexión a la fuente de datos Productos.

  • <sql connect con1>

    USER=admin

    PASS=

    DATASOURCE=Productos

    </sql>

  • ORACLE:

    En el siguiente ejemplo se hace la conexión sin SQL*Net.

  • <sql connect con1>

    USER=admin

    PASS=password

    </sql>

  • También se puede hacer la conexión con SQL*Net.

  • <sql connect con1>

    USER=admin

    PASS=password

    CONN_STR=T:hostname/1525:demodb

    </sql>

  • Formato de despliegue de error - <sql error>

    El subcomando error permite especificar el formato de despliegue de error. No requiere de parámetros, su contenido es utilizado tal como es para dar formato a los errores.

    Generalmente podrá hacer uso de los siguiente: %e (texto mensaje de error), %c (subcomando SQL que provocó el error), %n (número de error).

    En el siguiente ejemplo, se despliegan los errores bajo el encabezado ‘Error SQL’ con el subcomando SQL en negrita, seguido del texto del mensaje de error y su correspondiente número.

  • <sql error>

    <H2> Error SQL </H2>

    <STRONG>%c</STRONG><BR>

    %e (Número error %n)<BR>

    </sql>

  • Formato de encabezados - <sql headings>

    El subcomando headings posibilita tener texto que se despliega únicamente si la consulta ha sido exitosa; así como también, permite incluir los nombres de los campos de la base de datos en los resultados.

    En el siguiente ejemplo se despliega un encabezado y los nombres de los primeros tres campos de la base de datos. Nótese el uso de la letra h después del número del campo de dato.

  • <sql headings>

    <H1>Los resultados de la consulta son: </H1>

    %1h, %2h, %3h<BR>

    </sql>

     

  • Formato de los resultados - <sql format>

    El subcomando format permite especificar el formato de despliegue para cada registro resultante de la consulta a un base de datos.

    En el siguiente ejemplo se despliegan los primeros tres campos de una consulta; con el primer campo presentado como encabezado, pero únicamente si ha cambiado desde el registro previo. Además se despliegan dos punto entre el campo 2 y el campo 3, si el valor del campo 3 no es nulo.

  • <sql format>

    %[!1:<H1>%1d</H1>%]

    %2d %3(:%) %3d<BR>

    </sql>

  • Ejecución de un comando sql - <sql execute id_con>

    Donde id-con es el nombre de identificación de la conexión especificada previamente en el subcomando connect.

    El subcomando execute se utiliza para remitir una instrucción SQL (set, insert, delete ó create table)., la cual no retornará registros.

    En el siguiente ejemplo se hace una actualización del limite de crédito en la tabla Clientes, para aquel registro cuyo nombre y apellido sean iguales a los argumentos 1 y 2, respectivamente, los fueron remitidos por el servidor Web al programa dbCGI.

  • <sql execute con1>

    UPDATE

    clientes

    SET

    limite_credito = %3ª

    WHERE

    nombre = '%['%1a%] AND apellido = '%['%2a%]

    </sql>

  • Ejecución de una consulta sql - <sql query id_con>

    Donde id-con es el nombre de identificación de la conexión especificada previamente en el subcomando connect.

    El subcomando query se emplea para remitir una consulta SQL (select), el cual retomará registros.

    Como ejemplo, se muestra una sentencia SQL que selecciona ciertos campos de la tabla Clientes, donde el número de cliente sea igual al valor introducido en el argumento 1.

  • <sql execute con1>

    SELECT

    nombre,

    apellido,

    direccion,

    limite_credito,

    telefono

    FROM

    clientes

    WHERE

    no_cliente = %1a

    </sql>

  • Fin de conexión de una base de datos - <sql disconnect id_con>

    Donde id-con es el nombre de identificación de la conexión especificada previamente en el subcomando connect.

    El subcomando disconnect es utilizado para desconectarse de una base de datos.

    El siguiente ejemplo se aplica para todos los DBMS, excepto Progress:

  • <sql disconnect con1>

    </sql>

  • Para Progress se debe incluir el parámetro DATABASE para especificar el nombre lógico de la base de datos a desconectarse.

  • <sql disconnect con1>

    DATABASE=demodb

    </sql>

  • Finalización de base de datos - <sql uninit>

    El subcomando uninit realiza cualquier finalización de comunicación con el DBMS. Este es el último subcomando que se utiliza en un archivo dbCGI. No reconoce ningún parámetro, como se muestra a continuación:

  • <sql uninit> </sql>

     

  • Especificaciones de Formato de dbCGI

    Las especificaciones de formato de despliegue proveen de un mecanismo completo para presentar los resultados de la consulta a un base de datos en una página Web; así como también para diseñar formularios que permitan actualizar una base de datos. Para ello, se emplean las sustituciones con el carácter %, las cuales pueden aplicarse en cualquier parte de un archivo dbCGI.

    En el siguiente ejemplo se muestra el uso de una especificación de formato que permite hacer referencia al contenido de una variable "codigo" de un formulario HTML, dentro de una cláusula WHERE de una sentencia SQL.

  • <sql query conn1>

    SELECT

    cod_postal

    FROM

    ciudades

    WHERE

    cod_postal = '%[=codigo%]'

    </sql>

  • Para mayor información sobre el uso de todos los parámetros de los subcomandos y de las especificaciones de formato de despliegue, remítase a la documentación prevista con el software dbCGI en la sección "The Formatting Escapes of dbCGI" o al siguiente URL:

    http://www.curv.com.au/dbcgi/doc/fmtesc.html


    [Contenido] [Anterior] [Arriba] [Siguiente]