Aqui os pongo mi primer articulo con contenido tecnico.
Este problema se me presento cuando hace aproximadamente 4 meses una empresa me contrato como consultor .NET para hacer un sistema web de explotación de tiendas, centralizandolo todo en su empresa. La aplicación previa a esto, funcionaba localmente en cada tienda, con una base de datos local.
El problema sin meterme en profundidad era resolver conectividad entre .NET y una base de datos DB2 sobre un AS/400.
Para comenzar la primera solución que se me ocurrio fue utilizar Host Integration Server 2006 la solucion de Microsoft para integrar la plataforma .NET con la plataforma IBM.
Este paquete fue desechado, por multiples razones, entre las que estaba el precio (dicha empresa acaba de comprarse varias licencias de Visual Studio 2005 y SQL Server 2005), y otra era mi perspectiva, que se me apetecia una solución mas cercana a mi que me permitiera programar desde .NET a pelo con dicha base de datos (DB2).
La solución cuando menos me la esperaba, llegó desde la propia IBM, una empresa que aboga al menos en este país por buscar soluciones sobre JAVA para su hardware y sus bases de datos. Fue cuando la propia IBM me presentó el Client Access, un provider desarrollado por ellos para poder realizar aplicaciones con .NET y que puedan conectarse con su base de datos.
Por desgracia esta solución, al menos en Asturias, no es conocida y nadie se queria hacer cargo de este proyecto.
La solución era tan simple como instalar en la maquina del desarrollador (y evidentemente luego en el servidor que alojara la aplicación) este programa, permitiendonos usar el provider de acceso a la maquina IBM.
Para una muestra de los objetos ADO.NET que tendremos que usar:
- iDB2Connection
- iDB2Command
- iDB2DataReader
- iDB2DataAdapter
- …
Previamente hay que agregar la referencia al componente IBM que hemos instalado previamente, dicha referencia .NET es:
- IBM DB2 UDB for iSeries .NET Provider
Un ejemplo de borrado de datos de tabla CLIPRO de la base de datos es:
string dataSource = «DataSource=(aqui la ip, o nombre del equipo en el dominio);» + «userid=(nombre del usuario);password=(evidentemente la contraseña del usuario)»;
iDB2Connection conn = new iDB2Connection(dataSource);
string query = «DELETE FROM TPVDATOS.CLIPRO»; //donde TPVDATOS.CLIPRO es la instancia y la tabla a la que accedemos separados por «.»
iDB2Command cmd = new iDB2Command(query, conn);
conn.Open( );
cmd.ExecuteNonQuery( );
conn.Close( );
Buenos pos comprendiendo este simple ejemplo, implementar el resto de funcionalidades que queramos realizar serán un calco de esto.
Espero que os resulte interesante todo esto, y si teneis alguna duda o sugerencia no dudeis en contactar conmigo.
Un saludo. Carlos.