【问题标题】:IBM DB2 Connection using VS2012 framework 4IBM DB2 Connection 使用 VS2012 框架 4
【发布时间】:2013-08-07 13:32:16
【问题描述】:

我正在尝试使用 VS2012 和框架 4.0 连接到 IBM DB2。 我安装了 64 位 IBM 数据服务器驱动程序包(DS 驱动程序)(V10.5 修订包 2)和 32 位(仅 1 个可用)IBM Database Add-Ins for Visual Studio (V10.1 FP 2)

如果我使用 ODBC 驱动程序连接,则连接成功。但是如果我使用 IBM.Data.DB2 连接,我会得到以下错误:

ERROR [08001] [IBM] SQL30081N 出现通信错误 检测到。正在使用的通信协议:“TCP/IP”。沟通 正在使用的 API:“SOCKETS”。检测到错误的位置: “10.60.20.34”。检测错误的通信功能:“连接”。 协议特定错误代码:“10061”、“”、“”。 SQLSTATE=08001

这里是示例代码:

string connStr = "Database=TestDB;User ID=demouser;Password=demouser5;Server=DemoServer;Connection Timeout=0";
DB2Connection cn = new DB2Connection();

cn.ConnectionString = connStr;
cn.Open();

Console.ReadKey();
cn.Close();

This link 说可能是服务器上的防火墙问题,但是 ODBC 是如何能够连接的,IBM 驱动程序会抛出异常。

感谢任何见解。

【问题讨论】:

  • 希望这可以帮助你到达某个地方 - stackoverflow.com/questions/11762206/…
  • 你确定ODBC的配置和框架里的一样吗?您是否安装了“数据服务器客户端”?是否正确配置?您是否尝试过附加到远程实例?您是否通过提供 DB2 端口来测试 telnet 检查?
  • @AngocA : 我发现我们的数据库是 UDB2 在 AS400 上运行的。无法使用 IBM.Data.DB2 与它建立连接。为此,我不得不使用 IBM.Data.DB2.iSeries 并且效果很好。

标签: c# .net db2 database-connection ibm-midrange


【解决方案1】:

既然您知道要连接到什么,我将在此处提供一些可能会有所帮助的其他信息。

基本上,DB2 家族有三个成员。您使用哪一个取决于操作系统:IBM z/OS、IBM i 或 LUW [Linux/Unix/Windows]。在大多数情况下,它们具有基本相同的基本特征,但存在细微差别和不那么细微差别。

我们实际上不再有 AS/400,尽管有些人仍然这么称呼它们。如果您的系统是最新的并且是最新的,那么您可能正在 Power 7 系统(硬件)上使用 IBM i 7.1(操作系统)。一些系统仍在 IBM i 6.1 甚至 i5/OS v5r4 上。

DB2 是操作系统的一个紧密集成且不可分割的组件,因此您的 DB2 版本就是操作系统的版本。

请务必使用适当版本的IBM i Information Center 作为您的 SQL 参考。不要误将这些站点用于 DB2 LUW 或 DB2 z/OS。

您最有可能使用的连接软件是IBM i Access for Windows,它包括一个与 DB2 for i 一起使用的 .NET 数据提供程序。您将需要与 IBM i OS 版本匹配的版本,或更高版本,但不能更低。确保为您的版本安装了最新的服务包。

您可能想查看connection string parameters。您的系统管理员(或 DBA如果系统有一个)也许能够推荐适当的设置。

我建议使用“系统命名”以利用“库列表”,当您没有使用模式名称限定表或视图时,它允许 DB2 搜索各种模式(“库”),有点类似于 Windows PATH 环境变量。我们更倾向于这种方法,它可以让代码在各种环境中更加灵活。

PS。 将适用于您在本网站上的问题。

【讨论】:

    【解决方案2】:

    您需要在服务器信息下指定连接的默认端口。它是446。所以你的 connectionString 看起来像

    string connStr = "Database=TestDB;User ID=demouser;Password=demouser5;Server=DemoServer:446;Connection Timeout=0";
    

    请注意,您需要有效的DB2 Connect 许可证才能连接到 ISeries。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      相关资源
      最近更新 更多