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

时间:2008-08-27 02:20:40

标签: .net db2 db2-luw vista64

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

  

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

有几个IBM forum posts提到它,但没什么有用的指导。有谁之前经历过这个吗?或者你有更好的想法来解决它?

10 个答案:

答案 0 :(得分:2)

您是否需要将其作为x86运行?我在Visual Studio的开发Web服务器(x86)下遇到了与Web应用程序类似的问题,但切换到IIS(x64)对我有用。自从我部署到IIS x64之后,我就把它称为一天。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我假设您已在SQL1159中看到了DB2 Reference Guide的写入内容?

不幸的是,原因代码停在6并且不会继续为7.它确实说:

  

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

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

对不起,我知道这没多大帮助。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

  

无法找到请求的.net   框架数据提供者。它可能不是   安装。

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

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

答案 5 :(得分: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

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

答案 6 :(得分:0)

我在DB2 .net提供程序中遇到了同样的问题。

如果您有64位Windows,请下载并安装 IBM数据服务器运行时客户端(Windows AMD 64)版本9.5
从 ?_HTTPS://www14.software.ibm.com/webapp/iwm/web/preLogin.do LANG = EN_US&安培;源= SWG-idsrc11&安培; S_TACT = appddnet&安培; S_CMP = ibm_im

如果您运行程序,则会出现以下异常

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

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

这可以解决问题。

答案 7 :(得分:0)

为win x64版本9.7.1安装DB2 Express-C 它会起作用

答案 8 :(得分:0)

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

答案 9 :(得分:0)

是。这应该发生在你的Windows 7而不是windows xp中。灵魂是:

  • 右键单击解决方案资源管理器中的项目
  • 属性
  • 编译标签(左侧)
  • 向下滚动以查看高级编译选项按钮
  • 将下拉列表 Target Cpu 更改为x86。