DBconn.BeginTrans
If WriteDB = True Then 'WriteDB 是一个公共函数
strsql = "update ....."
DBconn.Execute strsql If TransInvProcess = True Then' TransInvProcess 是一个公共函数
DBconn.CommitTrans
else
DBconn.RollbackTrans
Endif
else
DBconn.RollbackTrans
EndIfPrivate Function WriteDB() As Boolean
WriteDB=False '插入两张表
SQL="inert into table1......"
DBconn.Execute sql
SQL="inert into table2......"
DBconn.Execute sql
WriteDB=True
End Function Public Function TransInvProcess() As Boolean
TransInvProcess = False
SQL="select * from Table1"
rs1.Open SQL, DBconn
If InP(rs1!ff)=True then 'InP也是一个函数
......
TransInvProcess = True
else
Exit Function
endif
End Function
Private function InP(byval ff as string)as boolean
SQL="select * from Table2 where field='" & ff &"'"
rs2.Open SQL, DBconn
'运行到此处是出错了,报错信息为:cannot create new connection because in manual or Distributed transaction mode
If rs2.EOF=True and rs2.BOF=true
InP=True
else
InP=False
End Ifend function
If WriteDB = True Then 'WriteDB 是一个公共函数
strsql = "update ....."
DBconn.Execute strsql If TransInvProcess = True Then' TransInvProcess 是一个公共函数
DBconn.CommitTrans
else
DBconn.RollbackTrans
Endif
else
DBconn.RollbackTrans
EndIfPrivate Function WriteDB() As Boolean
WriteDB=False '插入两张表
SQL="inert into table1......"
DBconn.Execute sql
SQL="inert into table2......"
DBconn.Execute sql
WriteDB=True
End Function Public Function TransInvProcess() As Boolean
TransInvProcess = False
SQL="select * from Table1"
rs1.Open SQL, DBconn
If InP(rs1!ff)=True then 'InP也是一个函数
......
TransInvProcess = True
else
Exit Function
endif
End Function
Private function InP(byval ff as string)as boolean
SQL="select * from Table2 where field='" & ff &"'"
rs2.Open SQL, DBconn
'运行到此处是出错了,报错信息为:cannot create new connection because in manual or Distributed transaction mode
If rs2.EOF=True and rs2.BOF=true
InP=True
else
InP=False
End Ifend function
又打开了这个表,就会出现这种错误
----------
只需把 .open sql,dbconn 改为 .open sql,dbconn adOpenStatic, adLockOptimistic
即可实现。