集算器可以向数据库写入数据,支持数据库事务管理。这里通过例子来看一下控制事务提交和回滚等等的编程方法。
1、自动提交事务
集算器可以方便的实现增删改,最简单的写法如下:
上图中的A2到A4分别实现了插入、修改和删除。每条sql执行之后自动提交。需要说明的是:
1、3条语句提交了3次,对数据库操作比较频繁。
2、三条sql没有事务关系,后续的sql如果执行失败,并不影响前面的sql。
下面介绍结合序表批量提交事务,以及多条sql组成一个事务的编程例子。
2.批量提交事务
从students.txt文件中导入学生信息,用来更新数据库中的students1表,由于有很多记录需要修改,所以使用批量提交数据库的方式比较合理。
A1:定义一个文件对象,文件中保存的是学生信息。
A2:导入文件内容。
A3:使用A2中的学生信息,批量修改学生表1的内容。这里是使用批量提交sql的方式,可以避免频繁访问数据库。同时,能够保证整批数据同时成功写入或失败,即数据的一致性。
3、程序控制事务
下面,我们要新增一个学生,插入数据之后,要将学生的id修改为9。为了保证数据一致性,插入和修改都成功之后才能提交,否则就要回滚。
A1:连接数据库。注意connect函数使用了@e选项,出错时返回错误信息由后边的代码自行处理。如果不用这个选项,数据库出错的时候会直接结束集算器程序。
A2:执行插入sql语句。注意,execute使用了@k选项,表示执行结束后并不提交事务。如果不使用的话,就直接提交这个插入语句了。
A3:取得上一条数据库操作,也就是插入语句执行的结果,如果是err变量是0的话就代表执行成功,否则就是错误代码。
A4:判断执行结果err变量是否为0,如果是0代表上一条插入语句已经成功,就执行B4中的修改操作。
C4:取得修改sql执行的结果。
A5:判断err变量,如果是0的话就提交数据库,否则就回滚。
A6:关闭数据库连接。