软件 > 专题、教程宝典 > 技术开发 >


                 全面接触微软事务服务MTS

                    胡朝晖

  四、一个具体基于MTS的应用系统例子介绍


  下面举出一个具体的基于MTS的应用系统的实现例子(为了说明问题,我们采用VB语言来实现这个例子),注意该例子是用来说明MTS的使用的,而在W2K下是没有MTS这么一个单独的东西的,所以本例子适合于WinNT操作系统环境。

  主要步骤:

  1. 创建服务器组件

  首先,我们需要创建的是一个基于Active DLL的工程,我们创建的组件需要用到ADO对象,所以在创建服务器端组件的时候需要引用ADO类型库,同时因为需要使用MTS,所以也需要引用MTS类型库(实际上在W2K下,我们需要引用COM+ Services Type Library),这里我们把工程的名字设为MTSTest,需要注意的是,我们需要把线程模型设置为Apartment Threaded。

  增加如下的代码:

Option Explicit

Public Function Database_Test_Method(ByVal szConnect As String) As String

 On Error GoTo Errhandler

 Dim ctxObject As ObjectContext

 Set ctxObject = GetObjectContext()

 Dim cn As ADODB.Connection

 Dim rs As ADODB.Recordset

 Set cn = New ADODB.Connection

 With cn

  .ConnectionTimeout = 10

  .ConnectionString = szConnect

  .Open

 End With

 Set rs = New ADODB.Recordset

 rs.Open "select * from authors", cn, adOpenForwardOnly, adLockReadOnly

 Database_Test_Method = "First Value From Database:" & rs(0).Value

 rs.Close

 cn.Close

 Set rs = Nothing

 Set cn = Nothing

 ctxObject.SetComplete

 Exit Function

 Errhandler:

  ctxObject.SetAbort

  Err.Raise vbObjectError, "MTSTest.Class1.Database_Test_Method",   Err.Description

  Exit Function

End Function

Public Function General_Test_Method() As String

 On Error GoTo Errhandler

 Dim ctxObject As ObjectContext

 Set ctxObject = GetObjectContext()

 General_Test_Method = "String from Gereral_Test_Method"

 ctxObject.SetComplete

 Exit Function

Errhandler:

 ctxObject.SetAbort

 Err.Raise vbObjectError, "MTSTest.Class1.Database_Test_Method",  Err.Description
 
 Exit Function

End Function

  编译该工程并生成DLL文件

  2. 创建客户端应用

  用VB创建一个新的EXE工程文件,在Form上增加两个命令:Command1和Command2。

  增加如下的代码:

Private Sub Command1_Click()

 Dim obj As Object

 Set obj = CreateObject("MTSTest.Class1")

 MsgBox obj.General_Test_Method

 Set obj = Nothing

End Sub

Private Sub Command2_Click()

 Dim szConnect As String

 szConnect = "Driver={SQL
   Server};Server=YourServerName;UID=Sa;Pwd=;Database=pubs"

 Dim obj As Object

 Set obj = CreateObject("MTSTest.Class1")

 MsgBox obj.Database_Test_Method(szConnect)

 Set obj = Nothing

End Sub

Private Sub Form_Load()

 Command1.Caption = "Call General_Test_Method"

 Command2.Caption = "Call Database_Test_Method"

End Sub

  编译生成客户端程序

  3. 把服务器组件安装在一个MTS包中

  在MTS Explorer的GUI管理界面下,创建一个新的包(Package),选择倒入组件选项,把MTSTest.Class1倒入到包中,成为包里面的一个组件。

  现在你能够在服务器端成功的运行客户端(2步骤所生成的EXE文件)应用程序了。如果客户端应用程序在远地机器上运行的话,就需要进行步骤4。

  4. 对客户端机器进行设置

  这需要两个步骤:

  首先,利用VB的应用程序setup wizard创建客户端的setup程序,注意在制作过程中,移去所有对远地组件的引用。

  其次,创建和使用由MTS生成的客户端setup程序。这主要是通过MTS Explorer实现的,通过在Package项上选择Export,然后选择你想把该Package倒到什么目录上,然后wizard会帮你做其他的事情。

  然后把该目录整个放到客户机上,运行该目录的CLIENT子目录下的可执行文件,这实际上就是一个安装设置程序,它会对客户机的注册表进行适当的操作,注册远地的服务器。

  现在你就可以在远地的客户机上使用这个MTSTest.Class1这个COM组件了。


上一页  1 2 3 4  下一页
【发表评论】【关闭窗口】