转至繁体中文版     | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 笑话频道 | 教程频道 | 会员中心 | 雁过留声 | 
最新公告:     "MinTao学以致用网"欢迎您的光临,你的支持便是我们的动力,欢迎广大网友和各界人士亲临指导,你们的一个小小的建议便是我们发展的开路石!  [MinTao  2007年9月5日]        
您现在的位置: MinTao学以致用网 >> 文章中心 >> 电子课堂 >> 数据库 >> Sql Server >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
SQL语言快速入门之一
SQL语言快速入门之二
SQL语言快速入门之三(一
SQL7.0储存过程调试
通过HTTP访问SQL Server
SQL Server的存储过程调
SQL Server安全性简介
定制PB与SQL Anywhere的
全面接触SQL语法
SQL 语法参考手册
更多内容
关于SQLDMO的使用         
关于SQLDMO的使用
作者:lw549 文章来源:不详 点击数: 更新时间:2007-11-14 13:00:22

关于SQLDMO的使用
2005-4-5 16:13:52
lw549

    sqldmo.dll是一个com,安装SQLServer后位于Program Files\Microsoft SQL Server\80\Tools\Binn
文件夹下,关于sqldmo能做什么的问题,不是本文讨论的重点,这里只说明如何使用该com,现在开始。
    第一步,导入sqldmo,生成类型说明文件。
    打开Delphi,Project菜单->Import Type Library...,在列表框中找到"Microsoft SQLDMO Object
Library(Version 8.0)"(你的版本可能和我的不一样),可以看到Class names列表框中显示出相应的类,
由于很多类名与vcl本身的类名冲突(比如TApplication,TTable等),需要修改类的名称,不过不改也没关系,
这里假设没改,点击按钮"Create Unit",进入漫长的等待过程。由于生成的文件比较大(6万多行的代码,
2.46M),这个过程很容易被误认为死机,稍候片刻。
    第二步,修改Type Library文件。
    经过漫长的等待,终于得到了来之不易的SQLDMO_TLB.pas,然而,当我们Compile的时候却发现这个单元
无法编译,提示大意为ID重复定义,这个简单,把第二个ID改成xID,编译通过。
    第三步,使用。
    在使用过程中,我发现在很多情况下,SQLDMO_TLB.pas中的类是不能用的,出现av错误。比如Restore,
必须这样使用:
  CreateOleObject(''''SQLDMO.Restore'''');
SQLDMO提供的一些事件,在.net和vb环境下得到了非常好的语法支持,同样的问题,在Delphi中却异常麻烦,
我们不得不维护IConnectionPointContainer,难道vb中一行代码就能解决的问题Delphi中就没有简单的方
法吗?有!而且同样简单!答案就是EventSinkImp,可以到http://www.techvanguards.com免费下载。安装也
很简单,一路Yes就ok了。
    EventSinkImp的实现是基于IConnectionPointContainer的,或者说,本来很麻烦的事由EventSinkImp
代劳了。它的使用界面与Import Type Library类似,这里就不多说了。Import以后,得到SQLDMOEvents.pas
和SQLDMO_TLB.pas两个文件。Compile通过,Install出错。好事多磨^-^
    根据错误提示,可以发现TTable、TDataBase与系统中已有的类冲突,改成TSQLTable和TSQLDataBase。
    EventSinkImp的使用很简单,根据帮助,在使用前,Connect一下就能顺利挂接事件。
    在使用SQLDMOEvents.pas和SQLDMO_TLB.pas的单元中,如果出现类冲突,比如TApplication,记得在类
前面加上单元名称,比如Forms.Application就可以了

写下这些希望后来者有所借鉴,如果有其他更好的方法,欢迎告之,谢!

文章录入:mintao    责任编辑:mintao 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007 MinTao学以致用网(www.mintao.net) Inc All Rights Reserved.
    QQ:543098146有事请Q我! QQ:261561092有事请Q我 QQ:179647303有事请Q我 MSN:min906@126.com
    站长:MinTao 信息产业部ICP备案号:鄂ICP备07500065号

    学以致用是我们学习者的至高境界和不懈追求,[MinTao学以致用网]与大家共同学习,共同进步……
    信息产业部备案
    *鄂ICP备07500065号