别人(人以及离职)写的类我这里调试保错,老板在催,半夜都没法睡,急急急!!

beijingsoft11 2003-08-28 03:39:48
我一直不懂这个程序为什么用这个复杂的结构,Implements ObjectControl是类里面还要用类吗?没看懂,而且Set oDb = oObjectContext.CreateInstance("ADODB.Connection") ’调用时保错“对象变量或with块变量没设置”?????????????

类源代码为:
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 vDBConn

Set 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 Function

End If
checkpasswordError:
oObjectContext.SetAbort
vresponse.Add True, Key:="error"
vresponse.Add Err.Description, Key:="reason"
Set checkpassword = vresponse
End Function


...全文
29 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
iiboy 2003-08-29
  • 打赏
  • 举报
回复
不晓得啦!
学习......
帮你
UP
wingchi 2003-08-28
  • 打赏
  • 举报
回复
up
vansoft 2003-08-28
  • 打赏
  • 举报
回复
楼上的说了,

要引用.
TechnoFantasy 2003-08-28
  • 打赏
  • 举报
回复
使用ObjectContext需要首先在程序中引用
Microsoft Transaction Server Type Library (mtxas.dll).
online 2003-08-28
  • 打赏
  • 举报
回复
安装pws
选择mts即可

win98光盘/add-ons目录
beijingsoft11 2003-08-28
  • 打赏
  • 举报
回复
有人知道吗?
beijingsoft11 2003-08-28
  • 打赏
  • 举报
回复
我的调用方式为
Dim objCompany As Object

Set objCompany = New crm.login

Set aa = objCompany.checkpassword("admin", "admin")
不知什么地方出了问题?
beijingsoft11 2003-08-28
  • 打赏
  • 举报
回复
在微软网站看到关于mtxas.dll的说明,是不是win2000不支持MTS,而转为支持com+阿,这样属性和方法就都变了????????急????怎么解决阿,请指教。
MTS
Microsoft 事务服务器类型库
(MTXAS.DLL)
共享属性管理器类型库
(MTXSPM.DLL)
MTS 2.0 管理类型库
(MTXADMIN.DLL)
在win2000下变为
COM+

COM+ 服务类型库
(COMSVCS.DLL)
COM+ 服务类型库
(COMSVCS.DLL)
MTS 2.0 管理类型库
(MTSADMIN.TLB)

MTS Admin DLL 引用已经转换为 MTS TLB 引用以获得向后兼容性。COM+ Admin 引用是单独的项目。但是,如果计划使用 COM+ Admin 对象,则需要仔细阅读文档,因为它们支持的集合、属性和方法已经改变。

beijingsoft11 2003-08-28
  • 打赏
  • 举报
回复
我这里找不到mtxas.dll阿,哪位兄弟能给我发一个吗?谢谢!我的系统是win2000 adv server
beijingsoft11@163.com

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧