La versatilidad del ODBC
Como Programar desde casa contra Bases de Datos de AS400 sin necesidad de AS400
¿Os imagináis que necesitáis realizar una pequeña (o gran) aplicación visual para tratar datos del AS400 pero no disponéis de ningún AS400 a mano de momento? No hay problema. Existe una posibilidad para hacer posible la programación contra bases de datos AS400 sin necesidad de un iSeries durante el proceso de desarrollo.
Es más un truco que una utilidad, pero funciona. El tema es que tuve que programar una utilidad para consultar un fichero del iSeries de manera visual pero no tenía acceso a la máquina de IBM en ese momento.
El primer paso es la creación de la bases de datos, y la tabla o tablas, en Microsoft Access, sí, esa aplicación que muchos programadores discriminan por limitada, pero no lo es.
Es importante que la estructura sea igual a la tabla o tablas del iSeries, respetando este principio, después no tendremos problemas.
Es indiferente si usamos el antiguo sistema de Microsoft Access (.mdb) como el nuevo sistema de bases de datos de Microsoft Access (.accdb) Lo importante es que las tablas tengan el mismo nombre que en iSeries, los mismos campos y el mismo orden.
Una vez creada la base de datos en Microsoft Access es hora de crear un ODBC que acceda a esta base de datos. Un OBDC es un puente muy versátil, la definición estándar es que ODBC «es un estándar de acceso a las bases de datos desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer posible acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos» gracias todo ello a un sistema de separación de capas, pero no es este el objetivo de este artículo.
Para crear el ODBC iremos a las herramientas administrativas de nuestro Microsoft Windows.
Y una vez dentro de esta opción buscaremos de DNS de usuario y agregar.
Y luego escogemos la opción que nos interesa que es Microsoft Access Driver (*.mdb, *.accdb)
Le damos un nombre, la descripción y lo enlazamos con la base de datos de Microsoft Access que antes hemos creado. Y ya lo tenemos.
Ahora deberemos ir a nuestra solución visual y trabajar contra este ODBC tranquilamente como si fueran tablas de iSeries, usando sentencias SQL.
En mi caso tengo esta función escrita en Visual Basic .NET para abrir la conexión al ODBC que hemos creado antes.
A partir de ahora trabajaremos con dicha conexión abierta usando sentencias SQL como si se tratara de las tablas de nuestro inexistente iSeries. Cuando acabemos con nuestra solución visual la llevaremos al cliente donde si está, esta vez sí, la máquina de IBM.
Allí instalaremos nuestra solución y crearemos el ODBC con el mismo nombre que hemos creado el anterior OBDC pero en este caso no será tipo Access Driver sino iSeries Access ODBC Driver.
La única consideración importante es avisar cuando creemos el OBDC contra el iSeries cuál es la biblioteca donde están las tablas, ya que mientras Access no tiene bibliotecas y en las sentencias SQL no hemos tenido que informar de ello, en el AS400 es necesario informar de las bibliotecas en los SQL, pero si lo ponemos ya en el ODBC no tendremos que cambiar nada.
Y sí, habéis leído bien, no hay que cambiar ya NADA. La solución visual conectará con el iSeries usando las mismas sentencias de Visual Studio .NET, sólo cambiando el ODBC. Hemos conseguido desarrollar sin iSeries una solución que funciona finalmente en un AS400.