Cargando

Por Alfonso Ricaño Bringas

Conectándose a InterBase desde Delphi

InterBase es una base de datos independiente, pero generalmente se utiliza en combinación con lenguajes de programación para integrar las aplicaciones o sistemas de información.

Como se menciona en la sección de Preguntas Frecuentes, InterBase puede ser accedido desde varios lenguajes, pero uno de los que más se utilizan para acceder a InterBase es Borland Delphi, el cual es un lenguaje visual, orientado a objetos y basado en Object Pascal. Borland Delphi ha proporcionado conectividad con InterBase desde sus inicios, debido principalmente a que son fabricados por la misma compañía (Inprise/Borland, antes Borland únicamente). En la versión de Delphi 1 Client/Server, ya se incluía un driver para conectarse a InterBase por medio de la BDE. La BDE es una maquinaria de base de datos que ofrece conectividad hacia varios manejadores de bases de datos de tipo SQL, y también hacia archivos de formato Paradox, dBase y hacia ODBC. BDE fue un gran avance en un principio, ya que ofrecía gran flexibilidad, al poder acceder casi transparentemente a los distintos tipos de manejadores de bases de datos sin necesidad de utilizar instrucciones distintas para cada uno; sin embargo, se fue evidenciando que esta flexibilidad tenía un precio: la velocidad y en algunos casos falta de control sobre cada manejador de base de datos específico. En este contexto, se empezaron a crear alternativas de conexión que permitían "saltarse" a la BDE y de esta manera lograr una eficiencia mayor en la velocidad de las conexiones y un mayor control sobre la base de datos. Fue así como Gregory H. Deatz creó unos componentes llamados Free InterBase Componentes (FIB) los cuales ofrecen una conexión directa a InterBase sin utilizar la BDE. Dada la popularidad de estos componentes, Borland los utilizó bajo licencia para crear los InterBase Express Components (IBX), que son algo así como la siguiente versión de los FIB. IBX vienen integrados con la versión 5 de Delphi (Professional y Enterprise) y han sido puestos bajo Open Source, por lo que están en constante desarrollo y ya han salido dos actualizaciones más que agregan funcionabilidad y corrigen errores. Bueno, después de este rollo histórico, vayamos al grano.

Componentes IBX

Los IBX se encuentran en la paleta de componentes llamada "InterBase" en Delphi 5 Professional y Enterprise. Los componentes principales de los IBX son (de izquierda a derecha): IBTable.- Es un descendiente de TDataSet que permite conectarse a una tabla de interbase "al estilo" de los ya conocidos TTables de la BDE. No se recomienda utilizar, ya que se puso por motivos de facilitar la migración de aplicaciones a los IBX. IBQuery.- Al igual que el IBTable, IBQuery se proporciona para facilitar la migración de aplicaciones. IBStoredProc.- Este componente permite conectarnos a los procedimientos almacenados de InterBase, aunque estos procedimientos también pueden ser accedidos desde un IBDataSet. IBDatabase .- Este componente funciona de manera similar al Database de la BDE, pues es el que hace la conexión principal a InterBase y donde se especifican los parámetros de conexión (ruta hacia la base de datos, nombre de usuario, contraseña). IBTransaction .- Este componente maneja las transacciones de la base de datos. Aquí difieren los IBX con la BDE, donde las transacciones también son manejadas por el TDatabase. IBUpdateSQL .- Este componente funciona de manera similar al UpdateSQL de la BDE, y se utiliza conjuntamente con un IBQuery. Debido a que no se recomienda utilizar IBQuery, tampoco utilizaremos IBUpdateSQL. IBDataSet.- Este es nuestro componente "estrella", pues es el que se recomienda para hacer las conexiones a tablas y vistas de la base de datos. Entre sus características principales es que permite especificar una instrucción SQL para cada acción del IBDataSet (Insertar/Modificar/Eliminar y Consultar datos). IBSQL.- Este componente provee de una conexión a más bajo nivel para la ejecución de instrucciones SQL con InterBase. IBDataBaseInfo.- Este componente provee información sobre la base de datos que se utiliza en el momento de consultarlo. Esta información puede ser los usuarios que están conectados en ese momento, la versión de InterBase, el nombre del archivo de la base de datos y otros datos importantes. IBSQLMonitor.- Nos permite monitorear el tráfico de instrucciones SQL que se ejecutan hacia el servidor. IBEvents.- Este componente permite saber cuando InterBase ha ejecutado un evento. Los eventos de InterBase permiten comunicar información generada desde el servidor hacia los clientes, ya que casi siempre la comunicación inicia en el cliente, por ejemplo cuando se manda una instrucción SQL al servidor y el servidor la ejecuta (en el caso de agregar/modificar/eliminar) y devuelve datos (en el caso de las consultas). Los eventos permiten que el Servidor informe a los clientes que ha ocurrido algo, por ejemplo, cuando un cliente actualiza datos, y el servidor informa a los demás clientes que vuelvan a leer los datos porque han sido modificados. Para los propósitos de este artículo, por el momento sólo revisaremos los componentes IBDatabase, IBTransaction e IBDataSet. En la próxima entrega (que espero que sea pronto) continuaré con un ejemplo de conexión, y explicando las propiedades más importantes de cada componente.
Más información: http://www.kylecordes.com .- Provee información sobre alternativas de conexión a bases de datos con Delphi, sin utilizar la BDE.