2010-07-28 8 views
12

Ich möchte eine Verbindung zu einer DB2-Datenbank, insbesondere eine iSeries-Version, mit. NET und C# durch Verweis auf eine DLL und keine Installation von Software auf dem Server. Derzeit verwenden wir die IBM.Data.DB2.iSeries.dll, die als Teil von iSeries-Zugriff für Windows installiert ist. Ich möchte das alles nicht installieren müssen. Aber anscheinend habe ich keine Option, weil der andere Anbieter IBM.Data.DB2.dll auch Sie erfordert Software zu installieren, bevor sie Post auf diese über Stackoverflow nach funktioniert: IBM.Data.DB2Verbinden mit IBM DB2 mit. NET nur mit DLL-Referenz

Gibt es trotzdem eine Verbindung von .Net C# -Code für DB2, indem Sie einfach auf eine DLL in Ihrem Code verweisen und KEINE andere Software auf dem Server installieren?

Ich weiß, dass Sie dies mit Java und der JT Open Toolbox (http://jt400.sourceforge.net/) tun können. Warum kannst du das nicht mit .Net machen?

Hier ist ein BASIC-Beispiel, wie wir derzeit die IBM.Data.DB2.iSeries.dll verwenden.

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) { } 
} 

Vielen Dank für Ihre Zeit, welzie

+0

Sie müssen keine zusätzliche Software auf dem Server installieren, sie ist mit dem Betriebssystem vorinstalliert. Oh, du meinst der Client = P – ASalazar

Antwort

8

Meine Frage wurde in einem IBM-Forum beantwortet. Hier sind die Antworten.

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

Answer1: Hallo Welzie, Während ich mit dem Produkt JT Open nicht vertraut bin pro sagen, sie am meisten wahrscheinlich basierend auf einem Typ 4 JDBC-Treiber, der auf ein Java nur Treiber Client-Seite (im Gegensatz zu älterem Typ 2 JDBC-Treiber, der eine Nicht-Java-Komponente auf dem Client benötigt). Da es sich um einen reinen Java-Treiber handelt, kann JT Open das tun, was Sie beschreiben. Der .NET-Treiber hat jedoch eine viel kompliziertere Abhängigkeitsstruktur und erfordert daher die Ablage mehrerer DLLs auf dem verwalteten und nicht verwalteten Client. Darüber hinaus erfordert die Verbindung zu einem iSeries-Server auch die Verfügbarkeit einer DB2 Connect-Lizenz auf dem Client. Daher ist die minimale Clientinstallation, die zur Unterstützung von .NET-Konnektivität zu einem DB2-Server erforderlich ist, der IBM Data Server-Treiber (der ca. 40 MB installiert ist). IBM Data Server Driver ist ein frei verfügbares Client-Paket, das von der IBM Website heruntergeladen werden kann. Wie bereits erwähnt, benötigen Sie zur Verbindung mit einem iSeries-Server jedoch auch eine DB2 Connect-Lizenz.

Grüße, Alex

Antwort2: Der IBM.Data.DB2.iSeries.dll Anbieter viele andere Teile der IBM erfordert i für Windows Zugriff auf das Produkt, beispielsweise über TCP/IP-Kommunikation zu handhaben Stack-, Sicherheits-/Anmeldeverarbeitung, CCSID-Konvertierungen usw. Es kann nicht kopiert oder als eigenständige DLL installiert werden.

+4

Es ist die Antwort, die ich erwartet habe ... aber sehr schlecht in diesen Tagen für IBM auf diese Weise zu packen. – BlueChippy

+2

Ich weiß. Wir haben dieselben Probleme. Es ist besser, wenn Sie es vermeiden können, sich jemals mit IBM zu befassen, aber manchmal haben Sie keine Wahl, und es ist eine Schande, dass IBM nicht kompetent genug ist, um dies richtig zu machen. Sie können einen der anderen DB2-Treiberprodukte wie Progress DataDirect ausprobieren, aber sie sind teuer. –

+2

@BlueChippy: Wenn Sie denken, dass IBM es so schlecht macht, müssen Sie absolut wütend darauf sein, wie andere es tun, wie Microsoft es tut. Versuchen Sie dasselbe in der entgegengesetzten Richtung. – user2338816

Verwandte Themen