打印本文 打印本文 关闭窗口 关闭窗口
使用SQL-DMO实现定制SQLScripts
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2158  更新时间:2009/4/22 23:22:14  文章录入:mintao  责任编辑:mintao
    file://(oSqlObjcet : Database,View ,StoredProcedure ,Trigger ,Check)
    // sScriptFilePath defalut is '
    function GetThisObjectScripts (oSqlObjcet : Variant ;sScriptFilePath : string ;
                                   iScriptType,iScript2Type : integer) : string ;
    begin
      Result := oSqlObjcet.Script(iScriptType,sScriptFilePath,iScript2Type) ;
    end;
    file://7.生成指定Objects的Sql Scripts
      // overload Method
      file://(oSqlObjcet : Table ,UserDefinedDatatype)
    function TForm1.GetThisObjectScripts (oDatabase ,oSqlObjcet : Variant ) : string ;
    begin
      Result := oSqlObjcet.GenerateSQL(oDatabase) ;
    end;
  
  调用的时候可以根据界面选择生成什么样格式的对象就传入相应的参数
  写个简单的例子,取出master的存储过程MS_sqlctrs_users的内容:
     procedure TForm1.Button4Click(Sender: TObject);
     var
       oSQLServer,
       oDatabase,
       oStoredProcedure : Variant ;
       ReturnStr : string;
     begin
       oDatabase  := CreateOLEObject  ('SQLDMO.Database');
       oSQLServer := LoginServerInstances('DAVID','sa',');
       oDatabase := oSQLServer.Databases.Item('master');
       oStoredProcedure := oSQLServer.Databases.Item('master').StoredProcedures.Item('MS_sqlctrs_users');
       file://生成create procedure的Scripts,将第一个4换成1就成了drop procedure的 Scripts了
       ReturnStr := GetThisObjectScripts(oStoredProcedure,',4,4); 
       ShowMessage(ReturnStr);
     end; 

  如果多个对象都需要导出 Scripts 话,可以用个string 变量保存被循环调用的
  GetThisObjectScripts过程,就可以实现导出多个对象的脚本了!
 
 
  关于保存和取出配置生成Scripts的过程,我想不用详细描述了吧?
  只需把设置好的控件状态保存到配置文件中,并且可以调用配置文件
  反向对控件状态来设置,这样就简单的实现了自定义的过程呀。
  呵呵,到这里就进入尾声了,通过组合上面这些函数,
  并且设置合理的界面调用,这程序应该很容易完成吧~~~~
  既然这样,那让我们为提供自己工作效率而建立更多小工具呀!  
 
  更多详情,请参阅 :
  C:\Program Files\Microsoft SQL Server\80\Tools\Books\sqldmo.chm
 
 
 

 

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口