Tmp_query.Connection.BeginTrans;
try
Excutesql('delete from person_archives where personnel_id='''
+ adoquery1.fieldbyname('personnel_id').asstring + '''');
Tmp_query.Connection.CommitTrans;
Tmp_query.free;
except
Tmp_query.Connection.RollbackTrans;
Tmp_query.Free;
exit;
end;Trans 为事务了,
为什么要开事务,听说是为了安全,可是我看不出来,有时候使用不当,程序达不到预期效果
不知道为什么使用它,以前没有用过,请解释,当我什么也不知道
try
Excutesql('delete from person_archives where personnel_id='''
+ adoquery1.fieldbyname('personnel_id').asstring + '''');
Tmp_query.Connection.CommitTrans;
Tmp_query.free;
except
Tmp_query.Connection.RollbackTrans;
Tmp_query.Free;
exit;
end;Trans 为事务了,
为什么要开事务,听说是为了安全,可是我看不出来,有时候使用不当,程序达不到预期效果
不知道为什么使用它,以前没有用过,请解释,当我什么也不知道
解决方案 »
- 一段Delphi代码 大家帮我看下有问题吗?请指正
- 类似saynsay的多人视频,顶者有分啦
- 为ADOquery添加的新Field,如果不是fkCalculated计算类型的,在运行时期就会不见了!
- 关于组件包的应用问题,急!
- 这回有分了??问一个简单的问题!!
- [求助]请问我应该用LISTBOX还是STRINGGRID ???
- 很急的菜鸟问题,大虾们请进!!!分不够再加
- 我想编一个五子棋的游戏,是当做毕业论的,大哥大姐帮帮我呀!
- 都都我好像我也欠你分数呢 呵呵..来来来!
- 你好,请问怎样把DEVorgchart的图片导出到word中?word是delphi生成的。
- 请问是VC++好 还是C++Bulider好呢??
- 奇怪的编译问题1
其中一句 SQL 出了问题,所有操作都回滚。
用两个ADOQuery在一个过程里面分别更新数据,假如后面一个更新失败的话,我要把前一个更新回滚到没有更新之前的状态,假如没有“事务”这个东东的话,要自己写代码实现将会很麻烦。
还有,在存储过程中执行多步更新时一般也要启动事务来进行保护。