C#引用sqldmo.dll的方法
找到 sqldmo.dll这个文件
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll
用.Net框架提供的工具转成受托管代码
tlbimp sqldmo.dll /out: c:\SQLDMO.dll

如题,有没有办法呢?   
  如果必须使用sqldmo,那么如何在没有安装sql的机器上使用这个com组件。   
  我在没有安装sql的机器上总是报错。
将以下文件发布到system32目录下   
  sqldmo.dll   
  sqlunirl.dll   
  sqlresld.dll   
  sqlsvc.dll   
  w95scm.dll   
  Resources\2052\sqldmo.rll   
  Resources\2052\sqlsvc.rll   
    
  然后运行   regsvr32   sqldmo.dll

在SQL Server2005以前的版本中,SQL分布式管理对象(SQL-DMO)为我们提供了非常有效的方法来通过编程的方式管理SQL Server。SQL-DMO支持基于COM的接口,开发人员可以通过这个接口来发现和操作SQL Server对象。而SQL Server2005在这方面做了更大的改进,它提供了一种新的管理框架,叫做SQL Server管理对象(简称为SMO),这套组件具有更强大的管理能力,而且它被建立在.Net Framework2.0之上。当然,我们仍然可以使用SQL-DMO来管理SQL Server2005,但SMO为我们提供了更多的功能,也支持很多SQL Server2005的新特性,它的性能也比SQL-DMO更优化。
   微软将SMO定义为“为可编程管理微软SQL Server而设计的对象”。SMO给了开发人员更全面地管理SQL Server的各种元素的能力,如表、列、索引、存储过程、触发器、Service Broker、快照数据库、备份和恢复、文件和文件组等。
C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.Smo.dll

SQLDMO.dll是个好东西,ASP.NET利用它可以实现在线备份、还原数据库等各种功能。近日有客户要求为其在后台添加一个管理数据库的功能。于是就出现了这篇文章。
     由于客户的数据库和WEB服务不再同一台服务器,当我们把网站部署在服务器上以后,运行程序,提示如下错误:

Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80040154. 

而客户又不想在这台电脑安装MSSQL,所以我们只需要在没有安装MSSQL的电脑上注册SQLDMO.DLL组件。

一步:首先将msvcr71.dll,  SQLDMO.DLL,
Resources\2052\sqldmo.rll,Resources\1033\sqldmo.rll 拷贝到C:\Program
Files\Microsoft SQL Server\80\Tools\Binn目录。
下载SQLDMO文件  
第二步:打开开始,在运行中输入 regsvr32 "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll" 注册sqldmo.dll。

正常情况下,经过以上两个步骤,网页就应该可以访问了的。 但是我们经过以上两次操作后,访问网页依然提示如下错误:

Retrieving the COM class factory for component with CLSID {10020200-E260-11CF-AE68-00AA004A34D5} failed due to the following error: 80070005.


经过一段时间的检查,我们发现C:\Program
Files\文件夹仅有Administrator和System的控制权限,而没有其他任何用户的权限,因此我们为Microsoft SQL
Server文件夹增加上Network Service 的读取权限。
至此,问题得到解决!

C#引用Interop.SQLDMO.dll后的注意事项(转)的更多相关文章

  1. 引用Interop.SQLDMO.dll后的注意事项。

    SQLDMO.dll是个好东西,ASP.NET利用它可以实现在线备份.还原数据库等各种功能.近日有客户要求为其在后台添加一个管理数据库的功能.于是就出现了这篇文章.     由于客户的数据库和WEB服 ...

  2. ASP.net发布项目引用了C++DLL后页面提示找不到指定模块的异常

    1.在引用C++dll的DllImport位置指定dll位置 [DllImport(@"C:\Windows\System32\DDyn_Method.dll", EntryPoi ...

  3. 关于.NET(c#)引用Dll后,找不到命名空间的问题

    最近做了一个Silverlight项目,一个类库引用DLL后,找不到命名空间.于是各种google,方法如下: 1.类库与DLL的目标框架不一致: 2.删除obj下文件和清空bin下文件: 3.重装系 ...

  4. Excel操作 Microsoft.Office.Interop.Excel.dll的使用

    ----转载: http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中 ...

  5. 关于下载DynamicDataDisplay.dll后被默认锁定的问题

    问题:命名空间 d3:“http://research.microsoft.com/DynamicDataDisplay/1.0”不存在ChartPlotter元素 原因:下载DynamicDataD ...

  6. 使用Microsoft.Office.Interop.Excel.dll 文件来生成excel 文件

    日常工作中经常需要将后台的数据导出成excel  格式,这里通过调用微软提供的类库来生成excel 文件. 具体是引用 了Microsoft.Office.Interop.Excel.dll 类库文件 ...

  7. NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF

    首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 下载链接 ,下载以后解压文件,把 ...

  8. c#操作excel方式三:使用Microsoft.Office.Interop.Excel.dll读取Excel文件

    1.引用Microsoft.Office.Interop.Excel.dll 2.引用命名空间.使用别名 using System.Reflection; using Excel = Microsof ...

  9. c++引用lib和dll的方法总结

    C++ 调用.lib的方法: 一: 隐式的加载时链接,有三种方法 1  LIB文件直接加入到工程文件列表中 在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中"Add F ...

随机推荐

  1. 默认hosts后面为files dns

    售后工程师 : 您好,问题已经解决,问题原因是您修改了/etc/nsswitch.conf配置文件中的hosts:这项导致的,默认hosts后面为files dns,但是后面去掉了DNS导致直接使用本 ...

  2. rocksdb 编译安装 日志

    Compilation RocksDB's library should be able to compile without any dependency installed, although w ...

  3. PHP 逻辑思维题

    约瑟夫环 一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止 ...

  4. 【SpringMVC】SpringMVC系列12之数据类型转换、格式化、校验

      12.数据类型转换.格式化.校验 12.1.数据绑定流程     Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFacto ...

  5. MySQL使用索引的场景及真正利用索引的SQL类型

    1. 为什么使用索引 在无索引的情况下,MySQL会扫描整张表来查找符合sql条件的记录,其时间开销与表中数据量呈正相关.对关系型数据表中的某些字段建索引可以极大提高查询速度(当然,不同字段是否sel ...

  6. Android Fragment间对象传递

    由于Activity相对较为笨重,因而在日常的开发中很多时候会用到Fragment.然而Activity之间是通过Intent进行数据的传递,那Fragment是通过什么来进行传递的呢?Fragmen ...

  7. Java for LeetCode 054 Spiral Matrix

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...

  8. codeforces A. K-Periodic Array 解题报告

    题目链接:http://codeforces.com/problemset/problem/371/A 题目意思:给出n和k和一个只有1或者2组成的序列,需要求出最少的改变次数,使得 n/k 组里面的 ...

  9. Excel 关于新建xls文件 新建sheet 合并sheet的VBA操作代码

    Sub 合并一个文件夹下全部xls文件中sheet到一个xls的sheet()workDir = ThisWorkbook.Path '当前xls文件所在的目录绝对路径'MsgBox workDir, ...

  10. Androidi性能优化之高效使用内存

    应用生存期的绝大多数时间都在用于处理内存中的数据 性能主要取决于以下三个因素: a:CPU如何操作特定的数据类型 b: 数据和指令需要占用多少存储空间 c: 数据在内存中的布局 访问内存: 因为访问内 ...