Guía de Implantación de la Interfaz Oraperl

[Contenido]

[Anterior] [Siguiente]

 


 Introducción 

Oraperl ofrece la posibilidad de establecer comunicación con una base de datos Oracle por medio de un escrito Perl, en el cual se pueden incrustar sentencias SQL. Oraperl interactúa con Oracle a través de OCI(Oracle Call Interface) , el cual comprende un conjunto de bibliotecas para el Lenguaje C, que actúan como interfaz de consulta.

En esta guía se reflejan los pasos a seguir para implantar oraperl en OSF/1, pero el procedimiento es análogo para otros tipos de Unix. La práctica efectuada para la realización del presente Trabajo de Graduación se llevó a cabo en un equipo Digital con 32 MB en RAM bajo el sistema Operativo OSF/1. Además se empleó una base de datos ORACLE 7.1.6.2.0 con los dispositivos SQL*Net ver 2.0 y Pro*C ver. 2.0. Para efectos de integración con el Web se trabajó con el Apache Web Server y el Intérprete Perl ver. 4.036.

 

Adquisición del Software

Especifique en su browser:

ftp://src.doc.ic.ac.uk/packages/perl/db/perl4/oraperl/oraperl-v2.4.tar.gz

El archivo oraperl-v2.4.tar.gz contiene el paquete de instalación de oraperl ver. 2.4 y posee un tamaño aproximado de 71.4Kb.

Instalación

1. Descomprimir archivo de oraperl desde el shell de Unix:

#dir _instalación / gzip -d oraperl-v2.4.tar.gz | tar -xvf

Con lo cual se crea el directorio #dir_instalacion/oraperl-v2.4 , el cual contiene los archivos fuente de oraperl.

2. En este nuevo directorio editar archivo Makefile para reflejar la configuración de su sistema.

3. Ejecutar make para crear oraperl.

4. Ejecutar make test para verificar el proceso de instalación.

5. Ejecutar make install para instalar oraperl y demás bibliotecas en las rutas adecuadas de su sistema.

Al finalizar el proceso de instalación, en su sistema quedarán instalados:

Configuración

Un escrito oraperl se ejecuta en base a interpretación y además debe poseer extensión .pl ; por lo tanto para que integre Oracle con el Web es necesario:

Especificar ruta completa de intérprete Oraperl

En la primera línea del escrito se debe detallar la ruta completa del programa ejecutable de oraperl, de la siguiente forma:

#! /usr/bin /oraperl

 Asignar atributo de ejecución

Para que el escrito pueda ejecutarse en su sistema, es necesario asignarle el atributo de ejecución desde la línea de comandos:

#<ruta_escrito>/ chmod 755 nombre_escrito.pl

Acceso a Archivos Oraperl

Los archivos oraperl deben poseer extensión .pl, al igual que un escrito Perl; y se invocan como cualquier escrito CGI:

http://<servidor_web>/<dir-cgi>/<aplicacion>.pl

<servidor_web>: Es la dirección IP o alias del servidor Web.

<dir-cgi>: Ruta del directorio de escritos CGI del servidor Web.

<aplicacion>.pl: Escrito Perl que hace uso de oraperl.

Ejemplo de Aplicación

A manera de ejemplo, suponga que se tiene el siguiente formulario HTML para consultar una base de datos de estudiantes tomando como criterio de búsqueda la edad:

<HTML>

<BODY>

<H1>Consulta de Estudiantes</H1>

< FORM METHOD="GET" ACTION="/cgi-bin/oracons.pl" >

<P>Edad Mayor a:<INPUT NAME="edad" SIZE=3>

<INPUT TYPE="SUBMIT" VALUE="CONSULTAR">

</FORM>

</BODY>

</HTML>

El correspondiente escrito oraperl ,oracosn.pl, es:

#! /usr/bin/oraperl

use CGI_Lite;

print "Content-type: text/html \n\n";

print "<HTML><BODY><PRE> ";

$cgi = new CGI_Lite(); # descodificación de entrada proveniente del formulario

%forma = $cgi->parse_form_data();

 

 $lda = &ora_login( "UCA" , "cgiweb" , "cgiweb" ) || $oraerrstr;

$csr = &ora_open( $lda, "SELECT * FROM alumnos WHERE edad > :1 ");

&ora_bind($csr, ’$forma{‘edad’}’ );

while ( ( $nombre , $edad ) = &ora_fetch($csr) ){

print $nombre, $edad, "\n";

}

&ora_close($csr);

&ora_logoff($lda);

print"</PRE></BODY></HTML>";

En este ejemplo se hace uso de CGI_Lite para descodificar la información proveniente del formulario.

Las funciones de oraperl empleadas en el ejemplo anterior son:

$lda = &ora_login( $id_sistema, $nombre, $password);

Permite establecer una conexión con una base de datos Oracle. Esta función recibe tres parámetros: el identificador del sistema de base de datos Oracle, nombre y password del usuario Oracle que solicita la conexión. Retorna el identificador de la conexión.

&ora_logoff( $lda );

Cierra una conexión previamente establecida con una base de datos Oracle. Como parámetro espera el identificador de la conexión.

$csr = &ora_open( $lda , $sentencia_sql );

Envía una sentencia SQL a la base de datos Oracle con la cual se ha establecido una conexión. Como parámetro recibe el identificador de la conexión y la sentencia SQL a ejecutar. Retorna el identificador de la sentencia SQL.

&ora_bind( $csr, $var1, $var2,...);

Oraperl permite que la sentencia SQL asociada con la función &ora_open contenga sustitución de variables. Lo cual consiste de " : " seguidos de un número entero, para indicar que se requieren valores de variables del formulario HTML al interior de la sentencia SQL. El valor asignado a cada sustitución en ora_open se tomará de los parámetros variables de la función &orabind , empezando de izquierda a derecha.

&orabind recibe como parámetros el identificador de la sentencia SQL, seguido por tantos valores como sustituciones de variable existan en ora_open.

$campos = &ora_fetch($csr);

@data = &ora_fetch($csr);

La función &ora_fetch se usa cuando en &ora_open se ha especificado una sentencia SELECT para recuperar información proveniente de la base de datos.

Como parámetro recibe el identificador de la sentencia SELECT enviada a la base de datos.

&ora_fetch usado en un contexto escalar, retorna el número de campos obtenidos. Si se usa en un contexto de arreglo; cada llamada a &ora_fetch recupera un registro de la base de datos hacia un arreglo, en el cual existe un elemento por campo.

&ora_close( $csr );

Si la sentencia SQL ya no se usará más, es necesario liberar su correspondiente identificador.


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