我现在是这样做的,在类模块定义了一个ctx AS objectcontextfunction A() set ctx=getobject ''''recordset操作 if Success then Ctx.setComplete else ctx.setabort end if end functionfunction B() set ctx=getobject ''''recordset操作 if Success then Ctx.setComplete else ctx.setabort end if end functionfunction C() set ctx=getobject ''''recordset操作 if Success then Ctx.setComplete else ctx.setabort end if end function
但你可以这样 在class头 Implements ObjectControl
Private ctxObject As ObjectContext
Private Sub objectcontrol_activate() Set ctxObject = GetObjectContext End Sub
Private Function objectcontrol_canbepooled() As Boolean objectcontrol_canbepooled = True End Function
Private Sub objectcontrol_deactivate() Set ctxObject = Nothing End Sub 然后在每个函数里 if success then ctxObject.setcomplete else ctxObject.setabort end if
set ctx=getobject
''''recordset操作
if Success then
Ctx.setComplete
else
ctx.setabort
end if
end functionfunction B()
set ctx=getobject
''''recordset操作
if Success then
Ctx.setComplete
else
ctx.setabort
end if
end functionfunction C()
set ctx=getobject
''''recordset操作
if Success then
Ctx.setComplete
else
ctx.setabort
end if
end function
在class头
Implements ObjectControl
Private ctxObject As ObjectContext
Private Sub objectcontrol_activate()
Set ctxObject = GetObjectContext
End Sub
Private Function objectcontrol_canbepooled() As Boolean
objectcontrol_canbepooled = True
End Function
Private Sub objectcontrol_deactivate()
Set ctxObject = Nothing
End Sub
然后在每个函数里
if success then
ctxObject.setcomplete
else
ctxObject.setabort
end if
马上给分
另外还有一个小问题:
当我通过set 语句进行对象赋值时,vb实际上是传的一个引用,那么回不回将相应的objectContext也传递过去?
比如Set A=B
如果A和B所在的套间不同的话,会不会使A的objectcontext成为b的objectcontext的一个引用?