2010-07-28 48 views
12

Me gustaría conectarme a una base de datos DB2, específicamente una versión de iSeries, utilizando .Net y C# haciendo referencia a un archivo .dll y NO instalando ningún software en el servidor. Actualmente usamos el IBM.Data.DB2.iSeries.dll, que se instala como parte del acceso de iSeries para Windows. No quiero tener que instalar todo eso. Pero al parecer no tengo una opción porque el otro proveedor de IBM.Data.DB2.dll también requiere que instale el software antes de que funcione de acuerdo con esta sobre stackoverflow mensaje: IBM.Data.DB2Conectar con IBM DB2 con .Net utilizando solo .dll referencia

¿Hay alguna forma de conectarse desde .Net C# codifica a DB2 simplemente haciendo referencia a .dll en su código y NO instalando otro software en el servidor.

Sé que puede hacer esto con Java y la caja de herramientas JT Open (http://jt400.sourceforge.net/). ¿Por qué no puedes hacer esto con .Net?

Aquí hay un ejemplo BÁSICO de cómo actualmente usamos IBM.Data.DB2.iSeries.dll.

String sql = "SELECT 1 FROM SCHEMAX.TABLEX"; 
System.Data.IDbConnection connection = null; 
IDataReader reader = null; 
try 
{ 
connection = new iDB2Connection(ConfigurationManager.ConnectionStrings.ConnectionString); 
connection.Open(); 
IDbCommand command = connection.CreateCommand(); 
command.CommandType = CommandType.Text; 
command.CommandText = sql; 
reader = command.ExecuteReader(); 
} 
finally 
{ 
try { reader.Close(); } catch (Exception ex) { } 
try { connection.Close(); }catch (Exception ex) { } 
} 

Gracias por su tiempo, welzie

+0

No necesita instalar software adicional en el servidor, viene preinstalado con el sistema operativo. Oh, te refieres al cliente = P – ASalazar

Respuesta

8

Mi pregunta fue respondida en un foro de IBM. Aquí están las respuestas.

https://www.ibm.com/developerworks/forums/thread.jspa?threadID=335816

Respuesta1: Hola Welzie, Aunque no estoy familiarizado con el producto JT abierto por la opinión, lo más probable es basado en un controlador JDBC de tipo 4, que es un único piloto Java en el lado del cliente (a diferencia del controlador JDBC Tipo 2 más antiguo que requería un componente que no sea Java en el cliente). Al ser un controlador solo de Java, permite a JT Open hacer lo que está describiendo. El controlador .NET, sin embargo, tiene una estructura de dependencia mucho más complicada, y como tal, requiere que se establezcan varias DLL en el cliente, tanto administradas como no administradas. Además, la conectividad a un servidor iSeries también requeriría una licencia de DB2 Connect para estar disponible en el cliente. Por lo tanto, la instalación mínima del cliente que se requiere para admitir la conectividad .NET a un servidor DB2 es IBM Data Server Driver (que tiene unos 40 MB instalados). IBM Data Server Driver es un paquete de cliente distribuido libremente que se puede descargar desde el sitio web de IBM. Sin embargo, como dije anteriormente, para conectarse a un servidor iSeries, también necesitaría una licencia de DB2 Connect.

Saludos, Alex

respuesta2: El proveedor IBM.Data.DB2.iSeries.dll requiere de muchas otras partes del IBM i Access para producto de Windows, por ejemplo para manejar las comunicaciones TCP/IP pila, manejo de seguridad/inicio de sesión, conversiones de CCSID, etc. No se puede copiar ni instalar como un dll independiente.

+4

Es la respuesta que esperaba ... pero muy pobre en estos días para que IBM empaquete de esta manera. – BlueChippy

+2

Lo sé. Tenemos los mismos problemas. Es mejor si puede evitar tratar con IBM, pero a veces no tiene otra opción, y es una pena que IBM aún no sea lo suficientemente competente para hacer esto bien. Puede probar uno de los otros productos de controlador de DB2, como Progress DataDirect, pero son caros. –

+2

@BlueChippy: si cree que es poco probable que IBM lo haga de esa manera, debe estar absolutamente furioso con la forma en que otras personas como Microsoft lo hacen. Intenta hacer lo mismo en la dirección opuesta. – user2338816

Cuestiones relacionadas