OBCOM SQL Wizard

Copyright © OBCOM INGENIERIA S.A. (Chile)

1.     Introducción

OBCOM SQL Wizard es una herramienta que permite generar componentes para invocar a procedimientos almacenados en una base de datos DB2, Oracle, SolidDB, SQL Server y Sybase. Esta herramienta pueden generar: páginas ASP y JSP, clases Visual Basic 6, componentes EJB y Servicios Web (GlassFish, JBoss, WebLogic, WebSphere), componentes .NET y Servicios Web (Visual Basic y C-Sharp), y aplicaciones Adobe Flex para probar los Servicios web.

OBCOM SQL Wizard es un control ActiveX (Rich Internet Application) que se utiliza con el navegador Internet Explorer de Microsoft (ver figura más abajo). Su forma de uso es simple. Primero se conecta OBCOM SQL Wizard a una de base de datos. Luego se seleccionan los procedimientos almacenados que se desea invocar. Finalmente, se generan las componentes haciendo clic en un botón la barra de herramientas. Los detalles de estos pasos se explican en las próximas secciones de este documento.

OBCOM SQL Wizard genera sólo archivos de texto. No se requieren bibliotecas (run-time) adicionales, excepto por aquellas bibliotecas propias del ambiente de desarrollo y/o ejecución donde se utilizarán los archivos de texto generados.

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image001.png

2.     Obtener o actualizar licencia de uso (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image027.png)

Antes de poder utilizar OBCOM SQL Wizard, es necesario registrarse y obtener una licencia de uso. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura. Los pasos necesarios para solicitar y obtener una licencia de uso están claramente explicados en esta ventana.

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image028.png

3.     Conexión a la base de datos (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image002.png,Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image003.png)

El primer paso para usar OBCOM SQL Wizard es conecterse a una base de datos. Al presionar el botón de la barra de herramientas, aparece una ventana como la que se observa en la siguiente figura. Esta ventana solicita la siguiente información: (1) tipo del servidor de base de datos, (2) nombre o número IP (SID en caso de Oracle) del servidor de base de datos, (3) nombre del usuario, y (4) contraseña del usuario.

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image004.png

Importante: para que OBCOM SQL Wizard se pueda conectar a una base de datos es necesario que el computador tenga instalado: (1) la biblioteca MDAC de Microsoft versión 2.5 ó superior, y (2) la biblioteca OLEDB específica de la base de datos. Normalmente, los sistemas operativos Windows ya tienen instalada una biblioteca MDAC adecuada, y una biblioteca OLEDB para Microsoft SQL Server. Las bibliotecas OLEDB para las bases datos DB2, Oracle, SolidDB y Sybase se deben instalar manualmente. Estas bibliotecas pueden ser descargadas gratuitamente de los sitios Internet de las empresas respectivas.

4.     Información de un procedimiento

La parte superior de la ventana de OBCOM SQL Wizard muestra la lista de los procedimientos almacenados disponibles en la base de datos (o esquema) seleccionado. Al hacer clic sobre uno de los procedimientos de esta lista, la parte inferior de la ventana permite ver (1) los parámetros de entrada/salida, y (2) el código fuente del procedimiento seleccionado. Las siguientes dos figuras muestran las dos pestañas que entregan esta información.

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image029.png

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image030.png

5.     Filtro de procedimientos (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image013.png)

La barra de herramientas posee un campo de texto que permite filtrar la lista de procedimientos almacenados que se muestran. Para filtrar esta lista, primero se debe digitar un patrón en el campo de texto, y luego presionar la tecla [Enter]. La lista se ajustará de inmediato de modo de mostrar sólo aquellos procedimientos almacenados cuyo nombre coincide con el patrón digitado. Un patrón es una secuencia de uno o más caracteres, algunos de los cuales tienen significados especiales. En particular:

Carácter del Patrón

Carácter del nombre del Procedimiento Almacenado

?

Coincide con cualquier carácter

*

Coincide con una secuencia de cero o más caracteres

#

Coincide con un dígito cualquiera (0-9)

[lista-de-caracteres]

Coincide con un carácter incluido en la lista-de-caracteres

[!lista-de-caracteres]

Coincide con un carácter no incluido en la lista-de-caracteres

otro carácter

Coincide con el mismo carácter

Se puede especificar un intervalo de caracteres en lista-de-caracteres colocando un guión () para separar los límites inferior y superior del intervalo. Por ejemplo, la secuencia [A–Z] en patrón permite hallar una coincidencia si en la posición correspondiente de la cadena (String) hay un carácter en mayúsculas cualquiera, comprendido en el intervalo de la “A” a la “Z”. Se pueden incluir múltiples intervalos entre corchetes, sin necesidad de delimitadores, por ejemplo: [A–Za-z0-9].

6.     Seleccionar procedimientos para generación (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image007.png)

Para poder generar componentes con OBCOM SQL Wizard, es necesario seleccionar uno o más procedimientos almacenados. Para esto, se debe hacer clic en la caja Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image008.png asociada a cada procedimiento, como se muestra en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image009.png

Para seleccionar (o deseleccionar) varios procedimientos a la vez, se puede utilizar el menú de la barra de herramientas identificado con el ícono Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image010.png. Alternativamente, el menú se puede activar haciendo clic con el botón derecho sobre la lista de procedimientos. En ambos casos, aparece una lista de opciones como se observa en la figura siguiente, la cual permite seleccionar o deseleccionar procedimientos en base a distintos criterios:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image011.png

Las opciones “Incluir nombres…” y “Excluir nombres…” permiten seleccionar o deseleccionar procedimientos en base a una lista de nombres provistas en un archivo de texto. Cuando se utilizan estas opciones, OBCOM SQL Wizard muestra una ventana para que el usuario seleccione el archivo que contiene los nombres. Cada nombre de procedimiento debe estar en una línea separada, como se muestra en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image012.png

7.     Definir conjuntos de resultados en código fuente

Un conjunto de resultados (ResultSet) es una entidad dinámica, cuya estructura sólo se conoce en el momento que se ejecuta un procedimiento almacenado. No existe un mecanismo estándar que permita conocer, de antemano, el nombre y tipo de las columnas de componen los conjuntos de resultado que retorna por un procedimiento. Debido a esta falta de información, las estructuras que genera OBCOM SQL Wizard para representar conjuntos de resultado son genéricas, y sus campos (fields) están definidos sólo como “Object”, en vez de tener tipos más específicos. Estas estructuras genéricas (weakly-typed) tienen varios problemas: (1) el compilador no puede detectar mal uso de tipos de datos, (2) el código generado es menos eficiente, y (3) la representación XML de estas estructuras es grande.

OBCOM SQL Wizard es capaz de leer el código fuente de un procedimiento, y obtener la definición de los conjuntos de resultado (ResultSets) que el procedimiento retorna. Con esta información, OBCOM SQL Wizard puede generar estructuras específicas (strongly-typed) para cada uno de los conjuntos de resultado. Estas estructuras específicas son eficientes y generan representaciones XML muy compactas. Es decir, no tienen los problemas de las estructuras genéricas (weakly-typed) antes mencionadas.

Para que esto pueda ocurrir, se necesita que el programador defina los conjuntos de resultados (ResultSets) usando comentarios especiales en el código fuente del procedimiento. Cada definición debe comenzar con la marca “#ResultSet” y debe terminar con la marca “#EndResultSet”. Entre estas dos marcas deben existir una o más marcas “#Column” que definen el nombre y el tipo de cada una de las columnas del conjunto de resultados.

El siguiente cuadro muestra un ejemplo con el código fuente de un procedimiento Microsoft SQL Server que contiene la definición de un conjunto de resultados denominado “EMPLEADO”, cuyo nombre en plural es “EMPLEADOS”:

CREATE PROCEDURE EMP$BUSCAR_POR_RUT
    @RUT VARCHAR(10)
AS
BEGIN
    -- #ResultSet EMPLEADO EMPLEADOS
    --   #Column  ID         DECIMAL
    --   #Column  DEPT_ID    DECIMAL
    --   #Column  NOMBRE     VARCHAR
    --   #Column  PATERNO    VARCHAR
    --   #Column  MATERNO    VARCHAR
    --   #Column  RUT        VARCHAR
    --   #Column  NACIMIENTO DATE
    --   #Column  SUELDO     DECIMAL
    -- #EndResultSet
      SELECT E.ID             AS ID,
             E.DEPT_ID        AS DEPT_ID,
             RTRIM(E.NOMBRE)  AS NOMBRE,
             RTRIM(E.PATERNO) AS PATERNO,
             RTRIM(E.MATERNO) AS MATERNO,
             E.RUT            AS RUT,
             E.NACIMIENTO     AS NACIMIENTO,
             E.SUELDO         AS SUELDO
      FROM EMPLEADOS E
      WHERE E.RUT = @RUT
END

El siguiente cuadro muestra el mismo ejemplo anterior, pero con código fuente de un procedimiento Oracle:

CREATE OR REPLACE PROCEDURE EMP$BUSCAR_POR_RUT
(
    RUT$       IN  VARCHAR2,
    EMPLEADOS$ OUT SYS_REFCURSOR
)
AS
BEGIN
    -- #ResultSet EMPLEADO EMPLEADOS
    --   #Column  ID         NUMBER
    --   #Column  DEPT_ID    NUMBER
    --   #Column  NOMBRE     VARCHAR
    --   #Column  PATERNO    VARCHAR
    --   #Column  MATERNO    VARCHAR
    --   #Column  RUT        VARCHAR
    --   #Column  NACIMIENTO DATE
    --   #Column  SUELDO     NUMBER
    -- #EndResultSet
    OPEN EMPLEADOS$ FOR
        SELECT E.ID             AS ID,
               E.DEPT_ID        AS DEPT_ID,
               RTRIM(E.NOMBRE)  AS NOMBRE,
               RTRIM(E.PATERNO) AS PATERNO,
               RTRIM(E.MATERNO) AS MATERNO,
               E.RUT            AS RUT,
               E.NACIMIENTO     AS NACIMIENTO,
               E.SUELDO         AS SUELDO
        FROM EMPLEADOS E
        WHERE E.RUT = RUT$;
END

Importante: los nombres de las columnas definidas con la marca “#Column” deben coincidir exactamente con los nombres de las columnas (alias) especificados en la sentencia “SELECT”.

8.     Generar componente EJB y Servicio Web (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image022.png)

OBCOM SQL Wizard puede generar componentes EJB (Stateless Session Beans) para invocar a procedimientos almacenados desde servidores GlassFish, JBoss, WebLogic y WebSphere. Adicionalmente, puede generar un servicio web para invocar a los procedimientos mediante protocolo SOAP estándar. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image023.png

Esta ventana de opciones solicita la siguiente información para generar la componente EJB:

  1. Nombre de la componente EJB que se generará.
  2. Ambiente de desarrollo y servidor de aplicaciones.
  3. Directorio donde se generarán los archivos de la componente.
  4. Nombre del paquete Java (package) que utilizará la componente.
  5. Nombre JNDI de la fuente de datos (DataSource) para conectarse a la base de datos.
  6. Definición del contexto transaccional que requiere la componente EJB stateless.
  7. Lista de los roles JEE que se requieren para utilizar los métodos de la componente.
  8. Generar conjuntos de resultado (ResultSets) usando definiciones #ResultSet (ver sección 7).
  9. Generación de un servicio web implementado con la componente EJB stateless.
  10. Generación de estructuras compatibles con la implementación de servicios web.
  11. Generar lógica que atrapa y retorna excepciones en una propiedad llamada “FaultString”.

Las componentes EJB que genera el OBCOM SQL Wizard son de tipo sesión sin estado (Stateless Session Beans). Cada método de la clase principal del EJB (SessionBean) implementa un llamado a un procedimiento almacenado, y los argumentos de este método corresponden a los parámetros de entrada (input) del procedimiento. Los valores de salida (output) del procedimiento, así como los conjuntos de resultado (ResultSets), son retornados en una clase serializable basada en el patrón “Data Transfer Object” (DTO).

Si ocurre un error durante la ejecución del procedimiento, se dispara una excepción Java que incluye un mensaje explicativo y la excepción base (SQLException). Estas excepciones pueden ser generadas por el programador dentro de los procedimientos almacenados utilizando funciones estándar tales como “RAISE_APPLICATION_ERROR” en Oracle o “RAISERROR” en MS-SQL.

Cuando la opción “Generar usando definiciones de #ResultSet contenidas en código fuente” no se selecciona, OBCOM SQL Wizard genera código que toma la data contenida en clases javax.sql.ResultSet y la almacena en otras clases que implementan las interfaces javax.sql.RowSet y javax.sql.rowset.CachedRowSet. Esto permite utilizar esta data sin necesidad de mantener una conexión abierta con la base de datos. En aquellos servidores que no posean clases que implementen estas interfaces (por ejemplo, IBM WebSphere 6.01), es necesario utilizar alguna biblioteca que provea esta funcionalidad (por ejemplo, la biblioteca gratuita JDBC Rowset Implementations 1.0.1 provista por la Java Community Process).

9.     Generar componente y Servicio Web .NET (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image018.png)

OBCOM SQL Wizard puede generar componentes .NET de Microsoft (Visual Basic o C-Sharp) para invocar los procedimientos almacenados seleccionados. Adicionalmente, puede generar un Servicio Web (Web Service) ASMX para invocar a los procedimientos mediante protocolo SOAP estándar. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image019.png

Esta ventana de opciones solicita la siguiente información para generar la componente.NET:

  1. Nombre de la componente que se generará.
  2. Lenguaje de la componente: Visual Basic (VB) o C-Sharp (C#).
  3. La versión del Framework .NET que se utilizará: 2.0, 3.0 ó 3.5
  4. Directorio donde se generarán los archivos de la componente.
  5. Nombre del paquete (namespace) al que pertenecerá la componente (opcional).
  6. Nombre del texto de conexión (ConnectionString) para conectarse a la base de datos.
  7. Generar conjuntos de resultado (ResultSets) usando definiciones #ResultSet (ver sección 7).
  8. Generar tipos de datos capaces de almacenar el valor NULL de base de datos (Nullable).
  9. Generación de un servicio web (Web Service) ASMX implementado con la componente.
  10. Generar lógica que atrapa y retorna excepciones en una propiedad llamada “FaultString”.

10.           Generar páginas JSP (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image020.png)

OBCOM SQL Wizard puede generar una página JSP por cada procedimiento almacenado seleccionado. Las páginas JSP generadas por OBCOM SQL Wizard implementan servicios de tipo REST (Representational State Transfer). Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la figura siguiente:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image021.png

Esta ventana de opciones solicita la siguiente información para generar las páginas JSP:

  1. Directorio donde se generarán las páginas JSP.
  2. Nombre JNDI de la fuente de datos (DataSource) para conectarse a la base de datos.
  3. Generar páginas HTML que permiten invocar y probar las páginas JSP generadas.

Una vez seleccionadas las opciones de generación, OBCOM SQL Wizard genera una página JSP con el mismo nombre del procedimiento. La página JSP obtiene los valores de los parámetros de entrada (input) del procedimiento de los parámetros GET o POST suministrados. Por ejemplo, la siguiente URL ejecuta un procedimiento llamado “GetUserData”, que tiene dos parámetros de entrada “UserID” y “FromDate”. Los valores de estos parámetros son “106035” y “2004-10-24”, respectivamente:

http://www.foo.cl/dbas/GetUserData.jsp?UserID=106035&FromDate=2004-10-24

Una vez ejecutado el procedimiento, la página JSP retorna los valores de los parámetros de salida (output), incluyendo el/los conjuntos de resultado (ResultSets) devueltos por el procedimiento. La página JSP también está preparada para atrapar y retornar cualquier error que ocurra durante la ejecución del procedimiento. Los valores de salida, los conjuntos de resultado (ResultSets), y los posibles errores se retornan siempre en formato XML.

11.            Generar aplicación Adobe Flex (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image024.png)

OBCOM SQL Wizard puede generar una aplicación Adobe Flex que permite probar los servicios web generados en los puntos anteriores. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image025.png

Esta ventana de opciones solicita la siguiente información para generar la aplicación Adobe Flex:

  1. Nombre de la aplicación Adobe Flex que se generará.
  2. Directorio donde se generarán los archivos de la aplicación.
  3. Indicar si se muestran los nombre originales de los procedimientos y sus parámetros.
  4. Generar archivo “crossdomain.xml” necesario para autorizar el acceso al servicio web.
  5. Generar archivo de comando (cmd) para compilar y producir un archivo “flash” (swf).

Para compilar la aplicación Adobe Flex generada se necesita el compilador “mxmlc.exe”, el cual forma parte del paquete de desarrollo “Flex SDK”. Este SDK es gratuito, y se puede descargar del sito de Adobe. Al compilar la aplicación Adobe Flex, se produce un archivo “Adobe Shockwave Flash” (SWF), el cual puede activarse dentro de un navegador (browser) estándar como muestra la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image026.png

12.           Generar páginas ASP (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image014.png)

OBCOM SQL Wizard puede generar una página ASP de Microsoft por cada procedimiento almacenado seleccionado. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la figura siguiente:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image015.png

Esta ventana de opciones solicita la siguiente información para generar las páginas ASP:

  1. Directorio donde se generarán las páginas ASP.
  2. Nombre de la variable de conexión que se utilizará para conectarse a la base de datos.
  3. Opción de generar utilizando modalidad de llamado adCmdStoredProc o adCmdText.

La modalidad adCmdStoreProc invoca directamente al procedimiento, en cambio la modalidad adCmdText invoca al procedimiento utilizando un comando de la forma “{?=callproc(?,?)}”. La modalidad adCmdText es más estándar, pero menos eficiente. La modalidad adCmdStoreProc es más eficiente, pero no está disponible en todas las bibliotecas OLEDB. Si está disponible, se recomienda utilizar la modalidad adCmdStoreProc.

Por cada procedimiento seleccionado, se genera una página ASP con el mismo nombre del procedimiento. La página ASP obtiene los valores de los parámetros de entrada (input) del procedimiento de los parámetros GET o POST suministrados. Por ejemplo, la siguiente URL ejecuta un procedimiento llamado “GetUserData”, que tiene dos parámetros de entrada “UserID” y “FromDate”. Los valores de estos parámetros son “106035” y “2004-10-24”, respectivamente:

http://www.foo.cl/dbas/GetUserData.asp?UserID=106035&FromDate=2004-10-24

Una vez ejecutado el procedimiento, la página ASP retorna los valores de los parámetros de salida (output), incluyendo el/los conjuntos de resultado (ResultSets) devueltos por el procedimiento. La página ASP también está preparada para atrapar y retornar cualquier error que ocurra durante la ejecución del procedimiento.

Los valores de salida, los conjuntos de resultado (ResultSets), y los posibles errores se pueden retornan en formato ADTG (binario compacto) o en formato XML. Por defecto, el formato utilizado es ADTG. Para obtener un resultado en formato XML, se debe invocar al procedimiento con un parámetro adicional de nombre “EcuFormat” con valor “XML”:

http://www.foo.cl/dbas/GetUserData.asp?EcuFormat=XML&UserID=106035&...

13.           Parámetros de la conexión ADO para páginas ASP (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image005.png)

OBCOM SQL Wizard permite ver los parámetros ADO (OLEDB) de la conexión a la base de datos. Estos parámetros se usan para configurar el archivo GLOBAL.ASA que requieren las páginas ASP generadas en la sección anterior. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image006.png

Esta ventana muestra una lista de nombres y valores separada por punto y coma. Los nombres de los parámetros, su significado, y sus posibles valores dependen del motor de base de datos. Para mayor información, consultar la documentación de la biblioteca OLEDB respectiva.

Las páginas ASP que genera OBCOM SQL Wizard hacen uso de una variable global que define los parámetros de conexión con la base de datos. Esta variable global es inicializada en el archivo GLOBAL.ASA, y su valor normalmente corresponde a la lista de parámetros de conexión que muestra la ventana “Propiedades de la conexión ADO” (figura anterior). Por ejemplo, el siguiente cuadro muestra un archivo GLOBAL.ASA que inicializa una variable global “EcuConnString” con una lista de parámetros de conexión:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'++
' Called when the first page of the application is used for the first time.
'--
    Application("EcuConnString") = "Provider=SQLOLEDB;User ID=DsnAdmin;..."
End Sub
</SCRIPT>

La mayoría de los parámetros de conexión que muestra OBCOM SQL Wizard tienen un valor predeterminado (default), y, por consiguiente, no es necesario definirlos en el archivo GLOBAL.ASA. Típicamente, los parámetros mínimos que se deben definir son los siguientes:

  1. Nombre de la biblioteca OLEDB: Provider.
  2. Computador servidor, o SID en Oracle: Data Source.
  3. Nombre de la base de datos: Initial Catalog (sólo SQL Server).
  4. Nombre del usuario: User ID.
  5. Contraseña del usuario: Password.
  6. Preparación para ResultSets: PLSQLRSet=1 (sólo Oracle).
  7. Preparación para tipos LOB: SPPrmsLOB=1 (sólo Oracle).

14.           Generar clases Visual Basic 6 (Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image016.png)

OBCOM SQL Wizard puede generar clases Visual Basic 6 de Microsoft para invocar a procedimientos almacenados. Al presionar el botón de la barra de herramientas, aparece una ventana como se observa en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image017.png

Esta ventana de opciones solicita la siguiente información para generar las clases Visual Basic 6:

  1. Directorio donde se generarán los archivos de clases Visual Basic 6.
  2. Opción de generar utilizando modalidad de llamado adCmdStoredProc o adCmdText.

La modalidad adCmdStoreProc invoca directamente al procedimiento, en cambio la modalidad adCmdText invoca al procedimiento utilizando un comando de la forma “{?=callproc(?,?)}”. La modalidad adCmdText es más estándar, pero menos eficiente. La modalidad adCmdStoreProc es más eficiente, pero no está disponible en todas las bibliotecas OLEDB. Si está disponible, se recomienda utilizar la modalidad adCmdStoreProc.

15.           Barra de estado

OBCOM SQL Wizard posee una barra de estado como la que se muestra en la siguiente figura:

Descripción: C:\Obcom\Sources\EcuTools\EcuSQL01\Docum\Version02\EcuSQL01_archivos\image031.png

La información provista por esta barra de estado (de izquierda a derecha) es:

  1. Nombre del usuario registrado.
  2. Nombre de la empresa del usuario.
  3. Área de mensajes con información de la última operación realizada.
  4. Nombre del usuario con que se conectó al motor de base de datos.
  5. Nombre del computador (o SID) del motor de base de datos.
  6. Versión de la biblioteca ADO utilizada para conectarse.
  7. Versión de la herramienta OBCOM SQL Wizard.