搭建论坛《搭建之星》论坛数据库交流 → [学习]名词解释——事务


  共有2546人关注过本帖树形打印

主题:[学习]名词解释——事务

帅哥哟,离线,有人找我吗?
admin
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 搭建官方
等级:管理员 帖子:5504 积分:20561 威望:9 精华:5 注册:2002-4-5 17:08:42
[学习]名词解释——事务  发帖心情 Post By:2007-6-12 9:29:55

假定银行的的应用程序,用户试图将其支票账户的钱转到公司储蓄账户中,假定转出这一步顺利完成,第二步是将转出的钱存入到储蓄账户时,系统提示该账户出现故障,不能将钱存入了。糟糕,问题出现了,支票账户的结余不对了,因为您已经将钱转出了。
幸好,数据库中提供了“事务”,如果使用了“事务”,就无需担心上述问题,发生意外时,可以撤消前面的操作。
“事务”允许对数据库中“单条记录的更新”组织起来,形成单一的工作逻辑单元。在执行更新时要么全部成功,要么全部失败。因此,“事务”可以被看作是“原子”的操作。而“原子”则意味着不能够再被分割。
“事务”有三种基本操作:开始事务管理、取消事务管理、结束提交事务。在搭建之星中“事务”的使用非常简单,ADO数据库连接构件的方法中,关于“事务”提供了四种方法,分别是:开始事务管理、结束提交事务、取消事务修改、是否在事务管理内。
开始事务管理:标志一个事务的开始。
结束提交事务:在事务执行期间,确认所有对数据库的更新。
取消事务修改:返回数据库开始执行事务之前的状态。
是否在事务管理内:判断一个事务是否处于激活状态。如果“是”返回布尔值“真”,否则返回布尔值“假”。
下面我们以“工资管理系统”为例帮助读者理解这个概念。假设到了年底必须为每一名职工增加固定的工龄工资,如果在操作期间出现了错误,需要撤消前面的改动,我们就可以把“增长每个职工的工龄工资”当做一步单独的事务管理,总体性的进行操作,或总体性的忽视错误。
在项目窗口中,放置三个普通按钮、浏览编辑网格、ADO数据库连接、ADO数据表、数据源、记录循环等构件。项目窗口构件摆放及属性设置,如图1所示


此主题相关图片如下:
按此在新窗口浏览图片

属性设置:基本数据库连接,不再赘述。ADO数据表——操作数据——甲字段名称属性设为“工龄工资”;“撤消”和“确认”按钮的允许属性设为“假”,由于“事务”一个整体不可分割,这样设置以避免按错顺序。
当单击“开始”按钮时,事件设置如图2所示


此主题相关图片如下:
按此在新窗口浏览图片

解释:第一步,必须执行方法“开始事务管理”,以启动事务管理功能。第二步,开始记录循环以修改工龄工资。
在循环过程中,事件设置如图3所示


此主题相关图片如下:
按此在新窗口浏览图片

解释:假定每年工龄工资的增加值为“100”;特别注意的是最后一条命令提交,由于现在处于“事务”中,并没有真正提交到“数据库表文件”中,而是提交到“数据缓存区”中了。
当单击“撤消”按钮时,事件设置如图4所示


此主题相关图片如下:
按此在新窗口浏览图片

解释;第一步,执行“取消事务修改”后,这样总体性的取消了修改内容。第二步,主要启动刷新数据表作用,以便看到取消事务后的结果。
当单击“确认”按钮时,事件设置如图5所示


此主题相关图片如下:
按此在新窗口浏览图片

解释:执行“结束提交事务”,将把事务处理的结果提交到数据库表文件中。
实例执行“撤消”操作前后的效果,如图6所示。

此主题相关图片如下:
按此在新窗口浏览图片


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
pc_doctor
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 卧龙樵夫
等级:首席分析师 帖子:1270 积分:7005 威望:0 精华:3 注册:2003-3-23 14:15:25
  发帖心情 Post By:2007-6-13 0:57:19

还不赶快增加进手册中去!

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
小小骑兵
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:爱好者 帖子:47 积分:71 威望:0 精华:0 注册:2007-1-7 22:51:34
  发帖心情 Post By:2007-6-13 8:30:59

学习

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[学习]名词解释——事务








签名