MTS管理自动化
2018-06-17 17:13:42来源:未知 阅读 ()
在ASP中可以方便地应用MTS,你可以编写支持MTS的组件,然后注册到MTS中。前提是你必须启动DTC(分布式事务管理器)服务。注册MTS组件是个比较麻烦的过程,特别是当你必须在多台机器上进行的时候,但幸亏MTS提供了管理对象,你可以通过编写简单的程序来自动地注册。下面这段拷自MTS文档:
MTS管理自动化的VisualBasic示例应用程序
VisualBasic5.0版的示例应用程序演示了如何使用Catalog、CatalogObject以及CatalogCollections对象的方法来自动完成对一个名为““脚本化的管理示例”的软件包的基本管理功能。
注意必须将您的VisualBasic工程配置为可以引用MTS管理类型库(MTSAdmin类型库)。要引用MTSAdmin类型库,请从VisualBasic工程工具栏中选择“引用”选项。然后查找“MTS2.0管理类型库”可引用文件。对于后期绑定的变量(在运行程序时才绑定),如果MTXADMIN.DLL文件已在本地机器上注册,则VisualBasic只记录类型库的位置,而不进行进一步的配置。
删除已有的名为“ScriptableAdminDemo”的软件包
调用CreateObject方法实例化目录对象。
DimcatalogAsObject
Setcatalog=CreateObject("MTSAdmin.Catalog.1")
调用GetCollection方法获取一个Packages集合对象。返回的Packages集合不从目录取得任何数据,因此从GetCollection方法返回的集合是空的。
DimpackagesAsObject
Setpackages=catalog.GetCollection("Packages")
填充这个Packages集合,读入所有软件包并查找“ScriptableAdminDemo”软件包,从而获得该软件包的已有版本。枚举该集合,在最高索引开始,就可以在循环内部调用Remove方法。Remove方法负责释放该对象,从集合中删除该对象,以及移动集合中的对象,使第(n 1)个对象变为第(n)个对象,这里的n大于或等于正在被删除的索引。集合对象的Remove方法是立即生效的。在Remove方法之后的任何时刻调用Item和Count方法都将反映出索引的变化。不过,对软件包的删除要直到调用SaveChanges方法后才会反映到目录上(请参阅第4步)。
packages.Populate
DimpackAsObject
n=packages.Count
Fori=n-1To0Step-1
Ifpackages.Item(i).Value("Name")="ScriptableAdminDemo"Then
packages.Remove(i)
EndIf
Next
调用SaveChanges方法来保存对数据的更改。
packages.SaveChanges
》创建一个新的名为“ScriptableAdminDemo”的软件包
使用Add方法添加一个软件包,注意要指定软件包标识符。Add方法将该对象添加到集合,但要到调用SaveChanges方法后才会将该变化应用到目录(请参阅第3步)。注意Add方法将把所有属性设为默认值。默认的标识符是一个新的具唯一性的标识符。
DimnewPackAsObject
DimnewPackIDAsVariant
SetnewPack=packages.Add
newPackID=newPack.Value("ID")
》更新Name和SecurityEnabled属性。
newPack.Value("Name")="ScriptableAdminDemo"
newPack.Value("SecurityEnabled")="N"
调用SaveChanges方法将这个新的软件包保存到目录。该调用的返回值是更改、添加或删除的对象数目。如果没有发生改变,该方法返回0。
n=packages.SaveChanges
更新“ScriptableAdminDemo”软件包的属性以及获取ComponentsInPackage集合。
调用PopulateByKey方法,从目录读入该软件包。这需要传递一个包含用来读入的关键字的数组。在示例代码中,使用了一个包含单个元素(刚创建的软件包的标识符)的数组。
Dimkeys(0)asVariant
keys(0)=newPackId
packages.PopulateByKeykeys
从集合中获取该软件包对象
DimpackageAsObject
Setpackage=packages.Item(0)
更新软件包的SecurityEnabled属性。
package.Value("SecurityEnabled")="Y"
调用GetCollection方法来取得ComponentsInPackage集合。将“ScriptableAdminDemo”软件包的关键字作为其中一个参数。
Setcomponents=packages.GetCollection("ComponentsInPackage",_package.Key)
调用SaveChanges方法将更改保存到目录。
packages.SaveChanges
》安装一个组件到“ScriptableAdminDemo”软件包:
调用GetUtilInterface方法来获取组件实用程序对象。一般使用该对象来安装组件。
DimutilAsObject
Setutil=components.GetUtilInterface
OnErrorGoToinstallFailed
调用InstallComponent方法,用一个字符串传递包含要安装组件的动态链接库(DLL)的名字。如果该组件没有一个外部类型库或proxy-stubDLL,则传递一个空字符串作为第二个和第三个参数。注意,在安装一个新组件之后,不必调用SaveChanges方法。InstallComponent方法将安装DLL中包含的所有组件,且这些组件被立即写入到目录。可以调用GetCLSIDs方法来获取所安装的组件的类标识符。
Form2.Show1
DimthePathAsString
thePath=Form2.MTSPath "\samples\packages\vbacct.dll"
util.InstallComponentthePath,"",""
DiminstalledCLSIDs()asVariant
util.GetCLSIDsthePath,"",installedCLSIDs
OnErrorGoTo0
调用PopulateByKey方法读回刚安装的组件。注意通过InstallComponent方法安装到软件包的组件在调用Populate或PopulateByKey方法从该目录中读回数据之前,在集合中是不可见的。
components.PopulateByKeyinstalledCLSIDs
》从“ScriptableAdminDemo”软件包中查找并删除Bank.CreateTable组件:
逐个列枚组件,并使用Item和Count方法更改事务属性。
DimcomponentAsObject
n=components.Count
Fori=n-1To0Step-1
Setcomponent=components.Item(i)
component.Value("Transaction")="Required"
按索引查找并删除Bank.CreateTable组件。注意,为了在循环中能调用Remove方法,必须向后逐个枚举集合中的对象。
Ifcomponent.Value("ProgID")="Bank.CreateTable"Then
components.Remove(i)
EndIf
Next
取得一个新的计数,并再次枚举集合。注意要到调用SaveChanges方法后,才会从数据存储中删除Bank.CreateTable组件。如果安装成功,则显示一个消息框通知用户。
n=components.Count
Fori=0Ton-1
Setcomponent=components.Item(i)
Debug.Printcomponent.Value("ProgID")
Debug.Printcomponent.Value("DLL")
Next
n=components.SaveChanges
MsgBox"ScriptableAdminDemopackageinstalledandconfigured."
ExitSub
installFailed:
MsgBox"Errorcode" Str$(Err.Number) "installing" thePath "MakesuretheMTSpathyouenterediscorrectandthatvbacct.dllisnotalreadyinstalled."
EndSub->
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 集合类:VBA集合对象的安全包装 2018-06-17
- 用OLE自动化Outlook 2018-06-17
- 显示多媒体信息 2018-06-17
- VisualBasic工程管理一 2018-06-17
- VisualBasic工程管理三 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash