仅使用.dll引用连接到带有.Net的IBM DB2

时间:2010-07-28 21:07:31

标签: .net database db2 ibm-midrange

我想通过引用.dll而不是在服务器上安装任何软件来使用.Net和C#连接到DB2数据库,特别是iSeries版本。目前我们使用 IBM.Data.DB2.iSeries.dll ,它是作为iSeries访问Windows的一部分安装的。我不想安装所有这些。但显然我没有选项,因为另一个提供程序 IBM.Data.DB2.dll 还需要您安装软件才能根据此堆栈溢出帖子运行:IBM.Data.DB2 < / p>

是否有通过简单地在代码中引用.dll而不是在服务器上安装其他软件来将.Net c#代码连接到DB2?

我知道你可以用Java和JT Open工具箱(http://jt400.sourceforge.net/)来做到这一点。你为什么不能用.Net做到这一点?

以下是我们当前如何使用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) { }
}

谢谢你的时间, welzie

1 个答案:

答案 0 :(得分:10)

我在IBM论坛上回答了我的问题。以下是答案。

https://www.ibm.com/developerworks/community/forums/html/threadTopic?id=77777777-0000-0000-0000-000014491597

<强>正确答案为: 嗨Welzie, 虽然我不熟悉JT Open产品,但它很可能基于Type 4 JDBC驱动程序,它是客户端的Java驱动程序(而不是需要非Java的旧版Type 2 JDBC驱动程序)。客户端上的组件)。作为仅Java驱动程序,JT Open可以执行您所描述的操作。 然而,.NET驱动程序具有更复杂的依赖结构,因此,需要在客户端上放置多个DLL,包括托管和非托管。此外,与iSeries服务器的连接还需要在客户端上提供DB2 Connect许可证。因此,支持与DB2服务器的.NET连接所需的最小客户端安装是IBM数据服务器驱动程序(安装大约40 MB)。 IBM Data Server Driver是一个免费分发的客户端软件包,可以从IBM网站下载。但是,如上所述,要连接到iSeries服务器,您还需要DB2 Connect许可证。

此致 亚历

<强> ANSWER2: IBM.Data.DB2.iSeries.dll提供程序需要IBM i Access for Windows产品的许多其他部分,例如,用于处理TCP / IP通信堆栈,安全/登录处理,CCSID转换等。它无法复制或作为独立的dll安装。