而Table ,UserDefinedDatatype 这两个对象生成Scripts的Method比较特殊, 它们调用的是GenerateSQL Method,其Syntax是: object.GenerateSQL( Database ) as String ,比较简单没有过多的参数,返回值 也是Script 的内容。 建议:把ScriptType,Script2Type两个参数可以赋予的值做成常量,这样在程序 中调用更直观些。如:SQLDMOScript_DatabasePermissions = 32; SQLDMOScript_Default = 4; .... 根据上面的说明可以建立这个函数(在申明此函数时填加overload表示同名不同参函数的重载): file://6.生成指定Objects的Sql Scripts 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]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18