安装SQL Server2K可能引发一个严重问题

** 安装 ** ** SQL Server ** ** 之后可能 ** ** **

** 会导致访问 ** ** 邮箱失败 ** ** **

Article last modified on 2002-1-21

--------------------------------------------------------

The information in this article applies to:

  • Microsoft Active Directory Service Interfaces, version 2.5

  • Microsoft Data Access Components version 2.6

--------------------------------------------------------

现象

|


---|---

FrontEndServer 是 Exchange 2000服务器 ;

从某个时候起,在这台机器上调用微软的CDO或者 CDOEX 访问 Exchange邮箱 发生了异常!而且ADSI也工作不正常。

从外表上看,没有任何错误的迹象。

重现步骤如下:

Ø         VB中创建一个应用程序;


Ø         引用CDOEX.DLL;


Ø         代码写入:


         Set oMsg = CreateObject("CDO.Message")


         oMsg.DataSource.Open(“http://BackEndServer/public”)

则在第二行得到这样的错误:

Run-time error ‘-2147221164(80040154)’:

无法向注册表写入项

FrontEndServer 配置:

Windows Advanced Server 2000 内部版本号 2195:Service Pack 2

IE 版本: 5.00.3315.1000 更新版本: SP2

CDOEX.DLL 的版本号: 6.0.4417.0

它所处的位置: C:\Program Files\Common Files\Microsoft Shared\CDO

原因


首先在 FrontEndServer 安装了 SQL Server 2000 之前,我们可以使用CDOEX的 IDataSource.Open 打开用户邮箱的:

_ConnectionPtr pCon = NULL;

CComPtr

 1<cdo::ifolder>pFldr; 
 2
 3CComPtr <cdo::idatasource>pSource; 
 4
 5hr=pFldr.CoCreateInstance(L"CDO.Folder"); 
 6
 7pFldr-&gt;get_DataSource(&amp;pSource); 
 8
 9hr=pSource-&gt;Open(bstrURLInbox, 
10
11(IDispatch*)pCon, 
12
13adModeRead, 
14
15adFailIfNotExists, 
16
17adOpenSource, 
18
19bstrUserDomainAccount, 
20
21bstrUserPwd); 
22
23但是安装了  SQL Server  之后,  MDAC  就被更新到了  version 2.6  !  ! 
24
25** 由于  Microsoft  的过错,早期的一些  MDAC  组件被  MDAC 2.6  删除或者被覆盖掉了  !!  **
26
27而运行  IDataSource.Open  ,是需要引用  MDAC 2.5  的这些被删除了的组件的,所以就会报出“  Class Not Registered  ”的错误。 
28
29此时,如果运行下面的代码: 
30
31Set con = CreateObject("ADODB.Connection")   
32con.Provider = "ADsDSOObject"   
33con.Open "ADs Provider" 
34
35最后一行会失败并报错:  run-tim error 429 'ActiveX component can't create object' 
36
37这种情况被新闻组的人们称之为  “ADSI toasting ADO”!! 
38
39这就是一个非常严重的问题了。你的要使用到以前的ADO的接口的程序可能都不行了! 
40
41所以,安装了  SQL Server 2000  之后,请一定从下列站点下载最新的  MDAC  安装包或者补丁。 
42
43http://www.microsoft.com/data/download_26sp1.htm 
44
45解决这个  CDOEX  的问题,就是下载并安装了  MDAC 2.6 SP1 (2.61.7326.6).exe  就可以了。   
46  
47#  小结   
48  
49---  
50  
51在任何机器上安装  SQL Server 2000  时,都请注意这个问题! 
52
53一旦发现原来可以运行的程序现在爆出一些莫名其妙的错误,请先更新这台机器上的  MDAC  !打  SQL Server 2000 SP1  应该也可以,我想。   
54  
55参考文献: 
56
571.  《  PRB: ADSI 2.5 and MDAC 2.6 Compatibility Issues (Q275917)  》 
58
592.  《  INFO: Determining Which Version of ADSI Is Installed (Q216290)  》</cdo::idatasource></cdo::ifolder>
Published At
Categories with 数据库类
comments powered by Disqus