我现在做了个程序,需要向数据库中作添加、删除、更改的操作!
现在需要做事务回滚处理,在对数据库进行操作之前加上了“Conn400.BeginTrans”其中“Conn400”是一个CONNECTION,和一个如果正确处理了就可以“Conn400.CommitTrans”;还有一个如果错误就“Conn400.RollbackTrans”;
可是,当数据处理遇到错误后程序能正确的运行“Conn400.RollbackTrans”条语句,但到数据库中却发现它并没有被回滚;
因为,在程序处理数据库之前,数据库里没有数据是空的,当程序处理到了错误的数据后本应该做一个回滚操作的,但出现错误并执行了“Conn400.RollbackTrans”后数据库确有报错前被处理的记录!
现在需要做事务回滚处理,在对数据库进行操作之前加上了“Conn400.BeginTrans”其中“Conn400”是一个CONNECTION,和一个如果正确处理了就可以“Conn400.CommitTrans”;还有一个如果错误就“Conn400.RollbackTrans”;
可是,当数据处理遇到错误后程序能正确的运行“Conn400.RollbackTrans”条语句,但到数据库中却发现它并没有被回滚;
因为,在程序处理数据库之前,数据库里没有数据是空的,当程序处理到了错误的数据后本应该做一个回滚操作的,但出现错误并执行了“Conn400.RollbackTrans”后数据库确有报错前被处理的记录!
解决方案 »
- vb做的系统
- vb6开发的程序应如何使用vs2008进行打包才能在win7上运行?
- 菜鸟求帮忙 VB与SQL server
- 高分求解!能否将word文件中的文本和图片(或公式)分别存取于Access的文本和OLE两个字段?
- 如何分开vb的菜单
- 大哥们 小弟在线等 msgbox的title总是显示 工程1 怎么办
- 欢迎来我的网站看看(人事软件网站)
- 请问如何用VB实现对Modem自动拨号,并且可以发送语音.
- vb和excel连接时excel模块里的路径怎么变成通用的
- 调查:您觉得 CSDN 能帮您解决实际问题吗?
- 。。。简单问题!!!!!!!!!顶就有分
- FORM窗体的大小为500*500,其中设置一个Picture控件,加载一个图形为1024*768,如何使用鼠标可以任意方向的平滑移动图片?
不行,我的数据库AS400的DB2。我必须要在程序里处理的,回滚处理应该是可以的呀!
程序回滚在SQL SERVER里面就行的呀!
我现在也不知道该怎么办了,你们有谁做过事务回滚的?
请帮忙分析一下!
我在程序里的这三个方法都能正确运行没有报错,所以应该排除这三种事务不能使用的可能,但还有什么别的可能吗?
难道AS400本身的DB2数据库无法实现数据回滚?
DoEvents
Set RecordSQL = New Recordset
sSelectSQL = "Select * From " & sTableSQL
Set RecordSQL = MyConn.Execute(SelectSQL)
DoEvents
RecordSQL.MoveFirst
Set Record400 = New Recordset
With Record400
.CursorType = adOpenDynamic 'adOpenStatic
.LockType = adLockPessimistic ' adLockOptimistic
sSelect400 = "Select " & sTable400 & ".* From " & sTable400
.Open sSelect400, Conn400
End With Conn400.BeginTrans
DoEvents
sMySelect = "Select * From FieldName Where TableName='" & sTableSQL & "'"
Set MyRecord = MyConn.Execute(sMySelect) Do While (Not (RecordSQL.EOF Or RecordSQL.BOF))
DoEvents
Record400.AddNew
MyRecord.MoveFirst
Do While (Not (MyRecord.EOF Or MyRecord.BOF))
tFieldSQL = Trim(MyRecord("FieldName"))
tField400 = Trim(MyRecord("RmtFName"))
Record400(tField400) = RTrim(RecordSQL(tFieldSQL))
MyRecord.MoveNext
Loop
Record400.Update
RecordSQL.MoveNext
Loop
Conn400.CommitTrans
Set RecordSQL = Nothing
Set Record400 = Nothing
NextRecord:
NextExit FunctionErrorLine: Select Case Err.Number
Case Else
Err.Clear
Conn400.RollbackTrans
GoTo NextRecord
End Select
Resume Next
End Function