Guía de Implantación de la Interfaz Internet Database Connector

[Contenido]

[Anterior] [Siguiente]

 

 

Introducción

Instalación

Configuración

Asociación de Extensión de Archivos IDC

Seguridad Con IDC

Prueba de IDC

Uso y Aplicación de IDC

Archivos IDC

Archivos HTX

Variables de archivos IDC en archivos HTX


 

 Introducción

Para efectos de probar al interfaz IDC en el presente Trabajo de Graduación, se configuró una PC con el sistema operativo Windows NT 4.0 (Server) y el Internet Information Server 2.0, accediendo a bases de datos que soportan ODBC, tales como: Access, FoxPro, Visual FoxPro, Paradox, Btrieve, dBase, entre otros.

Seguidamente, se desarrolla una guía práctica para poder usar la interfaz IDC con Windows NT.

Instalación

IDC se instala con el software del servidor Web Internet Information Server en el sistema operativo Windows NT 4.0. Requiere del CD-ROM de instalación. Para mayor información remítase a la documentación provista con dicho sistema operativo.

Configuración

Asociación de Extensión de Archivos IDC

Con el mapa de extensiones de archivos del sistema, puede configurarse la extensión de un archivo al programa correspondiente que lo ejecuta. El siguiente valor se instala por defecto con IDC:

.idc=C: \Winnt\System32\Inetsrv\Httpodbc.dll

Si el valor anterior no se ha instalado, deberá configurarlo editando la información en el registro de Windows NT, como se indica a continuación:

  1. Ejecute el editor de registro de Windows NT (regedt32.exe) y abra la carpeta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
  2. En el menú Edit, selecciones Add Value. Selecciones el Data type REG_SZ.
  3. Ingrese la extensión de los archivo IDC (.idc).
  4. En el editor de la cadena de texto, ingrese la ruta completa al intérprete utilizado con los escritos IDC (C: \Winnt\System32\Inetsrv\Httpodbc.dll).
  5. Vuelva a iniciar el servicio WWW del Internet Information Server.
Seguridad Con IDC

El Internet Information Server ejecuta aplicaciones ISAPI en el contexto de seguridad del usuario solicitante. Una revisión del acceso es realizada a este usuario. Para restringir la ejecución a usuarios selectos, pueden emplearse autorizaciones NTFS (NT File System) con aplicaciones ISAPI, como lo es el IDC.

Para asegurar IDC sin especificar autorizaciones de acceso en un archivo .idc, puede otorgar permiso de ejecución NTFS para el archivo htpodbc.dll a los usuarios apropiados. Httpodbc.dll es el nombre de la aplicación DLL/ISAPI que implementa IDC. Así, cuando un usuario trate de ejecutar IDC, el servidor revisará el permiso de acceso, el cual será concedido solamente si el permiso de ejecución ha sido otorgado a dicho usuario.

Debe prestar cuidado al configurar listas de control de acceso (ACLs) en el directorio WinNT y sus correspondientes subdirectorios. Algunas aplicaciones ISAPI y bases de datos requieren acceder archivos y DLLs ubicados en otros directorios.

Prueba de IDC

Para probar el funcionamiento de IDC puede intentar ejecutar los ejemplos de aplicación que se instalan con la interfaz.

Requerirá tener acceso a la base de datos "pub" de MS SQL Server y haber creado una fuente de datos del sistema (System DSN) con el Administrador ODBC en el Panel de Control.

Para acceder a los ejemplos de aplicación, abra el siguiente URL en el Web browser:

http://<servidor-www>/Samples/dbsamp/

Uso y Aplicación de IDC

El IDC posee varias funciones que ayudan a crear páginas Web conteniendo información almacenada en bases de datos. Para lograr el acceso a dichas bases de datos, debe crearse un archivo IDC (.idc) y otro archivo de extensión HTML (.htx).

Archivos IDC

Los archivos IDC contienen la información utilizada para acceder las bases de datos.

Uso de variables de formularios HTML en archivos IDC

Puede definir en un archivo IDC una consulta simple a una base de datos en forma estática. Aunque este tipo de consultas simples sean útiles, resulta más provechoso poder crear páginas Web a través de variables de formularios HTML con los datos provistos por el usuario. Los nombres de estas variables con sus respectivos valores son enviados por el Web browser y pueden ser utilizados en sentencias SQL en el servidor.

En el siguiente ejemplo se muestra la sección de un formulario HTML que posee un campo de entrada para que el usuario proporcione el dato requerido al servidor HTTP cuando se remita el formulario. Nótese que en el atributo ACTION de la etiqueta <FORM> se especifica el nombre del archivo IDC que se ejecutará al remitir el formulario.

  • <FORM METHOD="POST" ACTION="/<dir-cgi>/ejemplo.idc">

    <P>

    Ingrese el país: <INPUT NAME="busqueda">

    <P>

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

    </FORM>

  • En el archivo IDC (ejemplo.idc) se utiliza una variable en la cláusula where de la sentencia SQL, en lugar de un valor fijo, como se muestra a continuación

  • SQLStatement: select nombre, apellido, pais from Autores where pais = %busqueda%
  • Nótese que la variable es encerrada entre los caracteres %% para distinguirla de un identificador normal de SQL. Además, el nombre la variable es "busqueda" puesto que hace referencia al elemento <INPUT NAME="busqueda"> del formulario HTML.

    Cuando IDC encuentra una variable en el archivo .idc, el programa sustituye el valor enviado por el browser y luego remite la sentencia SQL al dispositivo ODBC.

    Uso de cajas de listas múltiples en formularios HTML

    Cuando se usa un formulario HTML que contiene la etiqueta <SELECT MULTIPLE…>, el programa IDC convierte los elementos en una lista de elementos, la cual puede ser usada en un archivo .idc como otras variables. Sin embargo, porque la variable es una lista, normalmente se utilizaría en una sentencia SQL con la cláusula IN.

    Por ejemplo, si un formulario HTML contiene la siguiente caja de selección múltiple:

  • <SELECT MULTIPLE NAME="region">

    <OPTION VALUE="Oriente">

    <OPTION VALUE="Centro">

    <OPTION VALUE="Occidente">

    </SELECT>

  • Puede construir un archivo IDC con la siguiente sentencia SQL:

  • SQLStatement: select nombre, region from Clientes where region IN ( '%region%' )
  • Si un usuario selecciona las regiones "Centro" y "Occidente" en el formulario HTML, la sentencia SQL se transforma así:

  • select nombre, region from Clientes where region IN ('Centro', 'Occidente')
  • Archivos HTX

    Los archivos de extensión HTML (HTX) contienen un número de palabras claves para controlar cómo el documento HTML resultante será construido, las cuales se encierran entre <%…%> ó <!--%…%-->.

    Las palabras claves reconocidas son:

    <%begindetail%>, <%enddetail%>

    Estas palabras claves rodean una sección del documento HTX en la cual el despliegue de datos de la base de datos serán fusionados. Dentro de esta sección, los nombres de los campos de la base de datos, delimitados por <% %> ó <!--% %-->, son utilizados para marcar la posición de los datos resultantes de la consulta.

    En el siguiente ejemplo se despliega el contenido de los campos de datos "nombre" y "edad". Tome en cuenta se puede hacer referencia a los nombres de los campos de datos en cualquier parte del documento HTX.

  • <%begindetail%>

    <%nombre%>: <%edad%>

    <%enddetail%>

  • Notas:

    <%if%>, <%else%>, <%endif%>

    Los archivos HTX pueden contener lógica condicional con una sentencia if…then…else, para controlar cómo las páginas Web son construidas. La sintaxis general es:

  • <%if condición %>

    texto HTML

    [<%else%>

    texto HTML]

    <%endif%>

  • Donde "condición" es de la forma: valor1 operador valor2; y "operador" puede ser: EQ (igual), LT (menor que), GT (mayor que) y CONTAINS (contiene).

    Notas:

    En el siguiente ejemplo, se ilustra el uso del nombre de un campo de la base de datos como parte del condicional para poder desplegar un mensaje:

  • <%begindetail%>

    <%if region EQ "Centro"%>

    Es de la zona Central.

    <%endif%>

    <%enddetail%>

  • En este otro ejemplo se muestra el uso del nombre de una variable de entorno del servidor Web como parte del condicional para poder desplegar un mensaje:

  • <%if HTTP_USER_AGENT contains "Mozilla"%>

    El cliente soporta funciones avanzadas de HTML.

    <%else%>

    El cliente es <%HTTP_USER_AGENT%>.

    <%endif%>

  • Variables de archivos IDC en archivos HTX

    Las variables de un archivo IDC pueden ser accedidas en un archivo HTX especificando el prefijo "idc." en el nombre de la variable.

    Por ejemplo, se puede desplegar el contenido del elemento <INPUT NAME="busqueda"> de un formulario HTML, como se muestra a continuación:

  • El país de origen es: <%idc.busqueda%>

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