用VB6创建MTS组件
发布时间:2006-10-14 2:45:24   收集提供:gaoqian
随便贴贴,学过VB的人都应该知道的,不好意思。
'**********************************************************************************************
'                 MTS VB6 COM Component Template - by Michael Gonzalez
'**********************************************************************************************
'(1) You must create a reference to the Microsoft Transaction Server Type Library (mtxas.dll).
'    If using Windows 2000, choose the COM+ Services Library (comsvcs.dll) instead.
'(2) Set your ClassModule's MTSTransactionMode property to 2 - RequiresTransaction
'    Note: ONLY use 2 - Requires Transaction if you plan on using the component with an MSDTC-
'    compliant Resource Manager such as MSMQ or SQL Server - OTHERWISE, use
'    1 - No Transactions
'(3) Make sure your project's Unattended Execution property is checked
'(4) Make sure your project's Component Version Compatibility is set to Binary Compatibility
'**********************************************************************************************
'  ObjectControl implements the interface that is used by MTS when the object is
'   activated and/or deactivated - this happens when you call one of the components's methods
'  The ObjectControl implementation makes use of three procedures:
'   1) ObjectControl_Activate
'   2) ObjectControl_CanBePooled
'   3) ObjectControl_Deactivate
'**********************************************************************************************
Implements ObjectControl

Dim objOC As ObjectContext

Public Sub Something()
    'This is a user-defined procedure/method
    'The ObjectContext Object is returned by GetObjectContext
    
    On Error GoTo Abort
    
    '*******************************************************
    '       Perform whatever you want in this area
    '       Visual Basic 6 stuff goes here
    '       The Something() procedure/method is just
    '       an example - you may use properties and other
    '       methods/procedures as well!
    '*******************************************************
    
Finished:
    objOC.SetComplete
        Exit Sub
Abort:
    objOC.SetAbort
        Err.Raise Err.Number, Err.Source, Err.Description
        Exit Sub
End Sub

Private Sub ObjectControl_Activate()
    'MTS invokes this procedure/method when the component/object is instantiated
    Set objOC = GetObjectContext()
    Exit Sub
End Sub

Private Function ObjectControl_CanBePooled() As Boolean
    'This enables MTS object pooling (not currently supported my MTS 2.0)
    ObjectControl_CanBePooled = True
End Function

Private Sub ObjectControl_Deactivate()
    'MTS invokes this procedure/method right before the component/object is released
    Set objOC = Nothing
    Exit Sub
End Sub

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50