转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> C语言系列 >> 正文
使用SQL-DMO实现定制SQL Scripts         

使用SQL-DMO实现定制SQL Scripts

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2442 更新时间:2009/4/24 21:11:31


      我是个负责数据库应用的开发人员,昨夜和旧同事电话聊天中谈到了一个
  大家共同的苦恼:因为几乎每天都要将自己的数据库项目生成SQL Scripts
  以供备份存档或发给客户更新,所以生成SQL Scripts就成了每天的必修课。
  而SQLSERVER的企业管理器又无法支持将生成SQL Scripts的过程保存为一个设置
  文件,每次都必须做许多相同的工作,
  如:选择对象呀、设置格式呀、表脚本选项、文件选项。。老是重复这样的操作
  实在太麻烦了!电话闲聊完后就想:能不能写个小工具,在可以提供SQLSERVER
  企业管理器所支持所有功能外,再增加个支持将各个选项的设置保存为
  配置文件(如:ini或XM格式)的功能呢?这样我以后只要选取不同的配置文件就可以
  直接生成出自己需要的Scripts格式,那样多好呀。。。
      但如何实现Scripts的生成呢?就考虑使用下以前很少用的SQL-DMO吧!
  心动不如行动,虽然夜已深,但有新鲜的体验总让我精神抖擞。。。呵呵,好了
  不废话了。。就先简单地谈谈如何使用SQL-DMO来实现自己的需求吧~~~~
      (代码示例使用Pascal语言表述)
   
      1. 枚举局域网内所有的SQLSERVER实例
      函数:
           function GetAllServerInstances :TStringList;
           var
             oApplication ,
             oSeverNameList : Variant ;
             i : integer ;
             sNameList : TStringList ;
           begin
             sNameList := TStringList.Create ;
             oApplication := CreateOLEObject (''''SQLDMO.Application'''') ;
             oSeverNameList := oApplication.ListAvailableSQLServers ;
             for i:= 1 to oSeverNameList.Count do
               sNameList.Append (oSeverNameList.Item(i)) ;
             Result := sNameList ;
             oApplication := NULL;
             oSeverNameList := NULL;
           end;
        
      2.登陆到指定的SQLSERVER实例
      函数:
           function LoginServerInstances (sServer,sUser,sPassword :string):Variant;
           var
             oSQLServer : Variant ;
           begin
             oSQLServer := CreateOLEObject  (''''SQLDMO.SQLServer'''');
             oSQLServer.LoginTimeout := 30;
             oSQLServer.LoginSecure := False;
             oSQLServer.AutoReconnect := True;
             oSQLServer.Connect(sServer,sUser,sPassword);
             Result := oSQLServer;
             oSQLServer := NULL ;
           end;
        
  以上两个函数可以帮助我们完成取得局域网内所有的SQLSERVER实例并且
  登陆上一个指定的实例。接下来就看看如何取得指定数据库的表名称和存储
  过程名称 :
 
       3.枚举指定Sqlserver实例所有database的名称
       函数:
           function GetAllDatabaseNameList (oSQLServer : Variant ):TStringList;
           var
             sNameList : TStringList ;
             i : integer;
           begin
             sNameList := TStringList.Create ;
             for i:= 1 to oSQLServer.Databases.Count do
               sNameList.Append (oSQLServer.Databases.Item(i).Name) ;
             Result := sNameList ;
           end;
       
       4.枚举指定数据库所有Table的名称
       函数:
            function GetAllTableNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
            var
              oDatabase : Variant ;
              sNameList : TStringList ;
              i : integer;
            begin
              sNameList := TStringList.Create ;
              oDatabase  := CreateOLEObject  (''''SQLDMO.Database'''');
              oDatabase := oSQLServer.Databases.Item(sDataBaseName);
              for i:= 1 to oDatabase.Tables.Count do
                sNameList.Append (oDatabase.Tables.Item(i).Name) ;
              Result := sNameList ;
              oDatabase := Null ;
            end;

       5.枚举指定数据库所有StoreProcedure的名称
       函数:
            function GetAllStoreProcedureNameList (oSQLServer : Variant ; sDataBaseName : string ):TStringList;
            var
              oDatabase : Variant ;
              sNameList : TStringList ;
              i : integer;
            begin
              sNameList := TStringList.Create ;
              oDatabase  := CreateOLEObject  (''''SQLDMO.Database'''');
              oDatabase := oSQLServer.Databases.Item(sDataBaseName);
 

[1] [2]  下一页


[其他]使用SQL-DMO实现定制SQLScripts  [Sql Server]在asp 中使用 sql_dmo 添加新数据库
[Sql Server]在asp 中使用 sql_dmo 给表添加索引  [Sql Server]在SQL Server 中使用SQLDMO
[Sql Server]VB.NET DMO SQL SERVER备份恢复  [Sql Server]用Delphi对SQL-DMO进行封装的一种实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

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

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

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

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台