Conectarse a Iseries Db2 con Delphi y ADO

Existen dos maneras de conectarnos con ADO a nuestro servidor de base de datos Db2 que se ejecuta sobre un equipo Iseries: La primera es usando la capa de conexión ODBC y la Segunda es Usando La capa de Conexión OleDb. Ambas proporcionadas por IBM.

*** Importante. Aunque en este artículo he usado Delphi 7, lo aquí expuesto aplica para cualquier versión de Delphi que incluya ADO.

Introducción 

Db2 es un motor de base de datos desarrollado por IBM, este motor de base de datos puede ser instalado y ejecutado en servidores Linux,Unix y Windows y puede decirse que está a la par de otros grandes de la industria como Oracle, informix y Sql Server.  Si deseas aprender un poco más, puedes visitar su página oficial aquí.

Iseries es el nombre que han tomado los servidores fabricados por IBM y que ejecutan el sistema operativo Os/400. Estos servidores antes conocidos como As/400, incluyen como software preinstalado una versión de Db2 para este sistema operativo. Si deseas conocer más acerca de él, puedes visitar su página oficial aquí.

Conectar nuestras aplicaciones desarrolladas en Delphi a Db2 es realmente muy sencillo. Tenemos a nuestra disposición la tecnología ADO de Microsoft que junto con los controladores ODBC y OLEBD proporcionados por IBM nos permitirán una integración rápida, fácil y eficiente al Servidor Db2 Iseries. Si deseas conocer más acerca del conjunto de herramientas y conectores disponibles, puedes visitar el siguiente enlace: Ibm I Access.

*** Importante. Las herramientas de conectividad para servidores ISeries, entre las que se incluye el Iseries Navigator , los conectores JBDC, los controladores ODBC y OLEDB, están incluidas en el CD de instalación incluido con el Servidor iSeries. De no tenerlo este debe ser solicitado a IBM.

 

Conectar Delphi a Db2 Iseries usando Ado y OleDb

Ejecutaremos Delphi, crearemos un nuevo proyecto y colocaremos 4 componentes con las siguientes propiedades:

Componente Propiedad Valor
AdoConnection1 LoginPrompt false
AdoTable1 Connection AdoConnection1
DataSource Dataset AdoTable1
DbGrid1 DataSource DataSource1

 

delphi_iseries

El siguiente paso es seleccionar el componente ADO connection y editar en el inspector de objetos su propiedad ConnectionString. Otra manera de hacerlo es dando doble click al componente. En la ventana que nos aparece seleccionaremos Use Connection String y presionaremos Build. De la lista de proveedores que nos aparecerá seleccionremos: IBM DB2 For iSeries IBMDASQL OLE DB Provider

OledbIseries

 

Seleccionado el proveedor OleDb presionaremos el botón “siguiente”, que nos llevará a la pestaña de configuración de conexión. En ella estableceremos lo siguiente:

  • DataSource: Dirección Ip o Dns del servidor.
  • UserName: Nombre de usuario.
  • Password: Contraseña del usuario.
  • Allow saving password: Verdadero.  (Esto permitirá omitir el loginpromt ).
  • Initial catalog: Nombre de la base de datos a la que nos conectaremos por defecto.

configureoledbiseries

 

Al guardar los cambios en la configuración de nuestra cadena de conexión, la propiedad del componente se establecerá de la siguiente manera:

Provider=IBMDASQL.DataSource.1;Password=Password;Persist Security Info=True;User ID=UserName;Data Source=IP or Dns Name;Initial Catalog=DatabaseNAme;

Establecida la cadena de conexión cambiaremos la propiedad connected a true en nuestro ADoConnection y si todo está correcto habremos establecido comunicación con nuestro servidor. Ahora como último paso vamos a seleccionar nuestro componente AdoTable y en su propiedad TableName colocaremos el valor sysibm.sysdummy1 y cambiaremos su propiedad active a true. Si todo es correcto tendremos la siguiente pantalla:

delphi_connected_iseries

 ¿Bastante sencillo verdad?

Conectar Delphi a Iseries Db2 usando ADO y ODBC

 

Primer paso Crear un DSN

Para conectarnos debemos crear un nuevo DSN en nuestro administrador de orígenes de datos. Este DSN que vamos a creer será usado por ADO para tener acceso a nuestro servidor I Series. Seguiremos los siguientes pasos:

En el Panel de Control, abrimos el administrador de orígenes de datos y en la ventana que se muestra seleccionaremos DSN de sistema o System DSN.

 OdbcSysadmin

 Presionamos el botón Add y se nos mostrará el asistente para crear un nuevo DSN por lo que de la lista seleccionaremos “Iseries Access Odbc Driver”  y presionaremos Finalizar.

odbcseliseries

 

Una vez que presionamos finalizar, el sistema nos mostrará una nueva pantalla donde deberemos configurar la conexión a Iseries.  Esto lo haremos de la siguiente manera:

Pestaña General

  • Data Source Name: Nombre del DSN (ISeries)
  • System: Dirección IP o nombre de red del servidor

configuregeneraliseries

Pestaña Server

  • SQL Default library: Nombre del esquema al que nos conectaremos.
  • Library list:  Esquemas que haremos visibles en las conexiones a este ODBC

configureiseriesserver

Con esto podremos crear un DSN que permita conexiones a través de ODBC con nuestro servidor Iseries.

 

Conectar Delphi a Iseries Db2 usando ADO y ODBC

Una vez que hemos creado el DSN, ejecutaremos Delphi, crearemos un nuevo proyecto y colocaremos 4 componentes con las siguientes propiedades:

Componente Propiedad Valor
AdoConnection1 LoginPrompt false
AdoTable1 Connection AdoConnection1
DataSource Dataset AdoTable1
DbGrid1 DataSource DataSource1

 

delphi_iseries

El siguiente paso es seleccionar el componente ADO connection y editar en el inspector de objetos su propiedad ConnectionString. Otra manera de hacerlo es dando doble click al componente. En la ventana que nos aparece seleccionaremos Use Connection String y presionaremos Build.

 

 

Lo que el sistema nos mostrará es el cuadro de diálogo del editor de enlace a datos o Data Link Properties. En la lista de proveedores seleccionaremos “Microsoft Oledb provider for ODBC Drivers” y daremos click en el botón siguiente y se nos mostrará la ventana de configuración del enlace:

udl_iseries

En esta ventana vamos a configurar el enlace de la siguiente manera:

  • User Data Source Name: Aquí desplegaremos la lista y seleccionaremos el DSN creado previamente: Iseries en mi caso
  • Username: El usuario de conexión a Iseries
  • Password: El password asignado.

Hecho lo anterior presionaremos OK y después de nuevo Ok y se establecerá el siguiente valor en la propiedad ConnectionString de nuestro AdoConnection:

Provider=MSDASQL.1;Password=password;Persist Security Info=True;User ID=usuario;Data Source=Iseries

Establecida la cadena de conexión cambiaremos la propiedad connected a true en nuestro ADoConnection y si todo está correcto habremos establecido comunicación con nuestro servidor. Ahora como último paso vamos a seleccionar nuestro componente AdoTable y en su propiedad TableName colocaremos el valor sysibm.sysdummy1 y cambiaremos su propiedad active a true. Si todo es correcto tendremos la siguiente pantalla:

delphi_connected_iseries

 

 

 

Sé el primero en comentar

Deja un comentario