小弟改别人一程序,遇到一个用到mts的类。问题是win2000下没有mts了,变成com+了,使用ObjectContext需要首先在程序中引用
Microsoft Transaction Server Type Library (mtxas.dll).现在变成COM+ 服务类型库(COMSVCS.DLL)。
我的程序该怎么变吗?
类源代码为:
Private oObjectContext As ObjectContext
Private oDb As ADODB.Connection
Private oRs As ADODB.Recordset
Private vSql As Variant
Const vDBConn As Variant = "DSN=crm;UID=sa;PWD=;"
Implements ObjectControl
Private Function ObjectControl_CanBePooled() As Boolean
    ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
    Set oObjectContext = Nothing
End Sub
Private Sub ObjectControl_Activate()
    Set oObjectContext = GetObjectContext()
End Sub
Public Function checkpassword(ByVal username As Variant, ByVal password As Variant) As Variant
'On Error GoTo checkpasswordError
Dim vAccount As New Collection
Dim vresponse As New Collection  
Set oDb = oObjectContext.CreateInstance("ADODB.Connection")  ’调用时保错“对象变量或with块变量没设置”?????????????
Set oRs = oObjectContext.CreateInstance("adodb.recordset")
Let vSql = "SELECT * FROM employee WHERE employeeid = '" & Trim(username) & "';"
oDb.Open vDBConnSet oRs = oDb.Execute(vSql)
If Not oRs.EOF Then
    If Trim(oRs.Fields("Password")) = Trim(password) Then
         vAccount.Add Trim(oRs.Fields("employeeid")), "login"
        vAccount.Add Trim(oRs.Fields("popedom")), "popedom"
        vAccount.Add Trim(oRs.Fields("name")), "name"
         vAccount.Add Trim(oRs.Fields("datapopedom")), "datapopedom"
         vAccount.Add Trim(oRs.Fields("depart")), "depart"
    
         oObjectContext.SetComplete
         oDb.Close
         vresponse.Add vAccount, Key:="account"
         vresponse.Add False, Key:="error"
Set checkpassword = vresponse ' error handling
 Exit Function
               Else
        vresponse.Add True, Key:="error"
        vresponse.Add "密码错!", Key:="reason"
        Set checkpassword = vresponse
        oDb.Close
        oObjectContext.SetComplete
        Exit Function
        
    End If
Else
    vresponse.Add True, Key:="error"
    vresponse.Add "没找到用户名!", Key:="reason"
    Set checkpassword = vresponse
    oDb.Close
    oObjectContext.SetComplete
    Exit FunctionEnd If
checkpasswordError:
    oObjectContext.SetAbort
    vresponse.Add True, Key:="error"
    vresponse.Add Err.Description, Key:="reason"
    Set checkpassword = vresponse
End Function