4

我正在尝试从 32 位 .Net 应用程序中获取 DB2 数据提供程序,以连接到在 Vista 64 上作为 32 位应用程序运行的 DB2(这是否足够令人困惑)?不幸的是,我收到以下错误:

SQL1159 DB2 .NET 数据提供程序初始化错误,原因代码 7,令牌 9.5.0.DEF.2,SOFTWARE\IBM\DB2\InstalledCopies

有几个IBM 论坛帖子提到了它,但没有什么有用的指导。有谁之前经历过这个吗?或者你有更好的修复方法吗?

4

10 回答 10

2

您是否需要将其作为 x86 运行?我在 Visual Studio 的开发 Web 服务器(x86)下的 Web 应用程序有类似的问题,但切换到 IIS(x64)对我有用。由于我正在部署到 IIS x64,所以我当时称之为一天。

我尝试使用 Filemon 和 Regmon 进行跟踪,但没有收到任何被拒绝或丢失键的错误。如果我再看一遍,我会检查 HKLM\Software\WOW6432Node,猜测安装程序写入 x64 HKLM\Software 节点,而不是 x86 节点。

于 2008-08-27T11:21:12.093 回答
1

我隐约记得在尝试设置从 sql 2005 到 as/400 的链接服务器时,DB2 for as/400 oledb 驱动程序也有类似的问题。这是一个权限问题,我最终发现只有 sql server 帐户(不是 windows)可以使用链接服务器,因为(我认为)驱动程序正在使用 sql 的凭据而不是模拟的凭据加载。如果它在“以”管理员身份运行时有效,那么它必须是权限。

于 2008-08-27T03:02:42.433 回答
1

我假设您已经在DB2 参考指南中看到了SQL1159的文章?

对你来说不幸的是,原因码在 6 处停止并且不会继续到 7。它确实说:

用户响应:您的 DB2 安装有问题。如果这是第一次在这台计算机上安装 DB2,请查看安装日志以查找任何可能的错误,并从“添加/删除程序”控制面板小程序运行 DB2 修复。安装日志的默认位置是执行安装的用户的 My Documents/DB2LOG 文件夹。如果这不能解决问题,请联系 IBM 支持并提供与此消息相关的原因代码以及任何安装日志。

所以我想尝试重新安装它,如果问题仍然存在,您将不得不联系 IBM。

抱歉,我知道这没有多大帮助。

于 2008-08-27T03:06:15.827 回答
0

我卸载了以前的 32 位版本,重新安装为 64 位,现在我得到一个完全不同的错误。提到它需要 FP2 来修复,但由于我使用的是 Express-C,所以我无法安装修复包(IBM 不为免费的 DB2 产品提供修复包)。无论如何,感谢您的帮助。至少我现在可以更接近连接。:)

于 2008-08-28T01:37:50.053 回答
0

我也在 Windows 2003 x86 服务器上遇到了这个错误。最初我的问题是

找不到请求的 .net 框架数据提供程序。它可能没有安装。

这导致评论 c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config 缺少 DbProviderFactories 部分的必要条目。实际上,那里没有 IBM DB2 条目。当我手动添加一个条目时,我遇到了你的这个错误,表明不仅仅是编辑machine.config。

最终我卸载了 IBM DB2 驱动程序集,重新启动系统,重新安装它,并让它正确初始化连接。

于 2008-10-31T11:09:03.983 回答
0

就像一个快速说明...

@Micheal:SQL1159 的链接是版本 9.1 文档
版本 9.5 文档上升到原因代码 9
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2 .luw.messages.sql.doc/doc/msql01159n.html

不幸的是,我认为那里没有记录的第十个原因代码,但它在 developerWorks 主题中
http://www.ibm.com/developerworks/wikis/display/DB2/DB2+and+.NET+FAQ#DB2and.NETFAQ -WhatisSQL1159初始化错误%3F

于 2009-05-14T22:12:26.123 回答
0

我对 DB2 .net 提供程序有同样的问题。

如果您有 Windows 64 位,
则从 _https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?lang=en_US&source=swg下载并安装 IBM Data Server Runtime Client (Windows AMD 64) 版本 9.5 -idsrc11&S_TACT=appddnet&S_CMP=ibm_im

如果你运行你的程序,你会得到以下异常

未处理的异常:System.Overflow 异常:算术运算导致溢出。在 IBM.Data.DB2.DB2ConnPool.Open(DB2Connection connection, StringszConnectionStringIn, DB2ConnSettings& ppSettings, Object& ppConn) 在 IBM.Data.DB2.DB2Connection.Open()

从http://www-01.ibm.com/support/docview.wss?uid=swg1IZ09579下载并安装 db2 版本的修复程序

这将解决问题。

于 2010-01-14T17:48:34.763 回答
0

安装 DB2 Express-C for win x64,版本 9.7.1,它会工作

于 2010-01-19T00:39:18.340 回答
0

我有类似的问题,我的机器是 64 位的。我安装了 32 位和 64 位 db2 运行时客户端,在我的项目中将目标框架设置为 32 位,对我来说非常有效。我能够在其他 64/32 位机器上运行该应用程序,只是他们需要从 db2 运行时客户端安装 32 位或 64 位,具体取决于机器操作系统。

于 2012-03-24T18:22:23.287 回答
0

是的。这应该发生在您的 Windows 7 中,而不是 Windows XP 中。灵魂是:

  • 右键单击解决方案资源管理器中的项目
  • Properties
  • Compile tab(左边)
  • 向下滚动查看Advanced Compile option按钮
  • 将下拉菜单更改Target Cpu为 x86。
于 2014-03-06T22:41:02.180 回答