使用SQLDMO中“接口SQLDMO.Namelist 的 QueryInterface 失败”异常的解决方法

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象),它封装 Microsoft SQL Server 数据库中的对象。它允许我们通过COM对象,对SQLServer进行管理。

SQLDMO对象来自SQLDMO.dll。因为SQLDMO.dll是一个COM对象,因此,在.NET中使用它的时候必须先引用它,如下图所示。


但是我们在使用中经常会遇到这个的一个异常“接口SQLDMO.Namelist 的 QueryInterface 失败”。我的代码如下:
       SQLDMO.ApplicationClass app=new SQLDMO.ApplicationClass();
       SQLDMO.NameList nl=app.ListAvailableSQLServers();
当程序执行到第二句的时候,就出现了如下图所示的异常。



这个异常同样也阻挠了我,我在网上进行查询的时候发现有很多人也提出了这样问题,但是没有提出解决的方法,我进行了一些尝试最后这个问题解决了,原来是SQLDMO本身的问题。我对SQLServer打了补丁之后这个问题就不存在了,我打的SQLServer的SP4,对于其它的补丁我没有尝试。如果有人进行了其它补丁的尝试,请将结果告诉我。

原文地址:https://www.cnblogs.com/hobe/p/249444.html