2010-07-28 2 views
12

Je voudrais vous connecter à une base de données DB2, en particulier une version iSeries, en utilisant .Net et C# en faisant référence à un .dll et l'installation d'aucun logiciel sur le serveur. Actuellement, nous utilisons le IBM.Data.DB2.iSeries.dll, qui est installé dans le cadre de l'accès iSeries pour Windows. Je ne veux pas avoir à installer tout ça. Mais apparemment, je n'ai pas une option parce que l'autre fournisseur IBM.Data.DB2.dll vous devez également installer le logiciel avant qu'il ne fonctionnera selon ce poste sur stackoverflow: IBM.Data.DB2Connectez-vous à IBM DB2 avec .Net en utilisant uniquement .dll référence

Y at-il de toute façon de se connecter à partir .NET C# code à DB2 en référençant simplement un .dll dans votre code et ne pas installer d'autres logiciels sur le serveur?

Je sais que vous pouvez le faire avec Java et la boîte à outils JT Open (http://jt400.sourceforge.net/). Pourquoi ne pouvez-vous pas faire cela avec .Net?

Voici un exemple de base de la façon dont nous utilisons actuellement la 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) { } 
} 

Merci pour votre temps, welzie

+0

Vous n'avez pas besoin d'installer un logiciel supplémentaire sur le serveur, il préinstallée avec le système d'exploitation. Oh, tu veux dire le client = P – ASalazar

Répondre

8

Ma question a été répondue dans un forum IBM. Voici les réponses.

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

Répondre1: Salut Welzie, Bien que je ne suis pas familier avec le produit JT Open par exemple, il est fort probable basé sur un pilote de type 4 JDBC, qui est un Java seul pilote sur le côté client (par opposition à l'ancien pilote JDBC de type 2 qui nécessitait un composant non-Java sur le client). Être un pilote Java seulement, permet à JT Open de faire ce que vous décrivez. Le pilote .NET possède cependant une structure de dépendance beaucoup plus compliquée et, en tant que telle, nécessite la configuration de plusieurs DLL sur le client, à la fois géré et non géré. De plus, la connexion à un serveur iSeries nécessiterait également qu'une licence DB2 Connect soit disponible sur le client. Par conséquent, l'installation de client minimale requise pour prendre en charge la connectivité .NET à un serveur DB2 est le pilote IBM Data Server (qui est d'environ 40 Mo installé). IBM Data Server Driver est un package client distribué gratuitement qui peut être téléchargé à partir du site Web d'IBM. Cependant, comme je l'ai indiqué ci-dessus, pour vous connecter à un serveur iSeries, vous devez également posséder une licence DB2 Connect.

Cordialement, Alex

Réponse2: Le fournisseur IBM.Data.DB2.iSeries.dll nécessite beaucoup d'autres parties du IBM i Access for Windows, par exemple pour gérer les communications TCP/IP pile, sécurité/gestion de connexion, conversions CCSID, etc. Il ne peut pas être copié ou installé en tant que DLL autonome.

+4

Il est la réponse que je m'y attendais ... mais très pauvres ces jours-ci pour IBM pour emballer cette façon. – BlueChippy

+2

Je sais. Nous avons les mêmes problèmes. C'est mieux si vous pouvez éviter de traiter avec IBM, mais parfois vous n'avez pas le choix, et il est dommage qu'IBM ne soit pas assez compétent pour le faire correctement. Vous pouvez essayer l'un des autres produits de pilote DB2 tels que Progress DataDirect, mais ils sont coûteux. –

+2

@BlueChippy: Si vous pensez qu'il est mauvais d'IBM de faire comme ça, vous devez être absolument livide à la façon dont d'autres comme Microsoft le font. Essayez de faire la même chose dans la direction opposée. – user2338816