DB2 para iSeries con Microsoft ADO .NET
DB2 para iSeries con Microsoft ADO .NET
ADMIN ADMIN   18 Enero 2007
redbooks.jpg
Este enlace te lleva al Redbook de IBM donde explica la integración de DB2 y ADO.NET.
Esto es solo una pequeña guia de la puesta a punto.
Desde aqui quiero agradecer a Salomé y a Pablo su esfuerzo en crear este documento (es obra suya) para poder compartirlo con los colegas de este magnifico servidor que es el iSeries.

Pasos Iniciales:
Instalar Visual Studio 2005
Instalar IBM iSeries Access para Windows (5.3 o superior). Debemos instalar la versión completa marcando la opción de enlace de datos ADO .NET.
Si se instala primero el iSeries Access para Windows antes que el Visual Studio la opción de enlace de datos ADO .NET no nos deja seleccionarla.
Dentro del Visual Studio hay que añadir una referencia nueva en la solapa .NET seleccionamos:
IBM DB2 UDB for iSeries .NET Provider
En el proyecto donde queramos usar esta conexión hay que añadir el espacio de nombres:
using IBM.Data.DB2.iSeries;



ADO .NET Conectado
Pasos a seguir:
Provider:
string provider = “DataSource=xxx.xxx.xxx.xxx;” + “userid=usuario;password=contraseña”;
xxx.xxx.xxx.xxx= nº IP

Conexión:
iDB2Connection cnn = new iDB2Connection(provider);
Sentencia SQL:
string sentencia = “select * from biblioteca.fichero”;
Objeto contenedor de comandos:
iDB2Command cmd = new iDB2Command(sentencia, cnn);
Declaramos el objeto contenedor del resultado de ejecutar la sentencia:
iDB2DataReader drDB2;
Abrimos la conexión:
cnn.Open();
Creamos el objeto que va a contener el resultado de la sentencia SQL y cargamos los datos:
drDB2 = cmd.ExecuteReader();
Leemos los registros cargados:
while (drDB2.Read())
{
}
drDB2.Close();
cnn.Close();

ADO .NET Desconectado  
Provider:
string provider = “DataSource=xxx.xxx.xxx.xxx;” + “userid=usuario;password=contraseña”;
xxx.xxx.xxx.xxx= nº IP

Conexión:
iDB2Connection cnn = new iDB2Connection(provider);
Sentencia SQL:
string sentencia = “select * from biblioteca.fichero”;
Objeto contenedor de comandos:
iDB2Command cmd = new iDB2Command(sentencia, cnn);
Objeto DataAdapter, hace de intermediario entre la base de datos y el DataSet
iDB2DataAdapter aAdapter = new iDB2DataAdapter(cmd);
Creamos el DataSet:
DataSet ds = new DataSet();
Abrimos la conexión y cargamos los datos en el DataSet:
cnn.Open();
aAdapter.Fill(ds);
cnn.Close();

Leemos los registros cargados:
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListBox1.Items.Add(ds.Tables[0].Rows[i].[0].ToString());
}
3 Comentarios
1 Pere 19.01.2007 23:36:46

Un documento muy interesante, pero yo tengo mi AS/400 en versión 4.5, veo que pone que hay que usar Client Access 5.3.

Estoy empezando a hacer cosas con .NET y me gustaria conectar con mi AS, ¿ es posible con la versión que tengo yo ?.

Un saludo y felicidades por tu web.

2 Martín 20.01.2007 11:54:12

Hola Pere, en teoria esto debe funcionar con cualquier versión de OS/400.

Lo único que tienes que tener en el iSeries es el servidor DDM arrancado, ahora mismo no recuerdo bien el número de puerto pero creo que es el 443.

El nombre de la base de datos por defecto es el número de serie de tu sistema pero hay un comando para cambiarlo.

Pero claro, el IBM DB2 UDB for iSeries .NET Provider aparece con el iSeries Access versión 5.3, a partir de la versión 5 se le empezo a llamar "UDB" al DB2 del 400 (Universal DataBase) y paso a cojer los standares de todos los DB2 en cualquier plataforma.

Yo no se si con la máquina en 4.2 puedes comprar el Iseries Access 5.3, pero esto es un tema legal que yo se muy bien como va.

Un saludo

3 Ricardo 31.05.2007 18:50:40

asd

Comentar
El comentario quedará pendiente de aprobación

SIDRA400
SIDRA400
SIDRA400
Entrada