sqlite处理事务的一个例子
来源:互联网 发布:ios编程开发团队介绍 编辑:程序博客网 时间:2024/05/21 09:16
事务在数据库中是一个重要的概念,使用事务可以保证数据的统一和完整性。同时也可以提高效率。拿我们上面创建的persons表来说,假设我要一次插入20个人的名字才算是操作成功,那么,在不使用事务的情况下,如果插入过程中出现异常或者在插入过程中出现一些其他数据库操作的话,就很有可能影响了操作的完整性。所以事务可以很好地解决这样的情况,首先事务是可以把启动事务过程中的所有操作视为事务的过程。等到所有过程执行完毕后,我们可以根据操作是否成功来决定事务是否进行提交或者回滚。提交事务后会一次性把所有数据提交到数据库,如果回滚了事务就会放弃这次的操作,而对原来表的数据不进行更改。
那么,如何启动,提交还有回滚事务呢?SQLite中分别是:BEGIN、COMMIT和ROLLBACK。下面来看一下例子:
@try{char *errorMsg;if (sqlite3_exec(_database, "BEGIN", NULL, NULL, &errorMsg)==SQLITE_OK) {NSLog(@”启动事务成功”);sqlite3_free(errorMsg); sqlite3_stmt *statement;if (sqlite3_prepare_v2(_database, [@"insert into persons(name) values(?);" UTF8String], -1, &statement, NULL)==SQLITE_OK) {//绑定参数const char *text=[@”张三” cStringUsingEncoding:NSUTF8StringEncoding];sqlite3_bind_text(statement, index, text, strlen(text), SQLITE_STATIC);if (sqlite3_step(statement)!=SQLITE_DONE) {sqlite3_finalize(statement);}}if (sqlite3_exec(_database, "COMMIT", NULL, NULL, &errorMsg)==SQLITE_OK) {NSLog(@”提交事务成功”);}sqlite3_free(errorMsg);}else{sqlite3_free(errorMsg);}}@catch(NSException *e){char *errorMsg;if (sqlite3_exec(_database, "ROLLBACK", NULL, NULL, &errorMsg)==SQLITE_OK) {NSLog(@”回滚事务成功”);}sqlite3_free(errorMsg);}@finally{}
- sqlite处理事务的一个例子
- 一个事务的例子
- SQLite的一个触发器的例子
- 4.17 一个SQLite的小例子
- 一个Web Service 自动事务的例子
- 一个Web Service 自动事务的例子
- SQLite 事务一致性处理 beginTransaction
- 关于blackberry平台下sqlite事务的处理方式
- SQLite事务的实现
- SQLite的事务
- SQLite的事务操作
- sqlite的事务
- SQLite事务的使用
- 一个简单的存储过程使用事务的例子
- struts异常的处理的一个例子
- 一个小例子揭示事务日志的工作原理
- 关于ALV双击 调用事务的一个例子
- 由一个例子想到对事务脚本模式的问题
- MFC 命名规则
- 使用过滤器Filter解决JSP+Servlet页面编码乱码
- checkbox二选一
- 程序中的字节是怎么算的
- 传统集合类在并发访问时的问题及Java5提供的同步集合类
- sqlite处理事务的一个例子
- oracle 怎样监听其他主机数据库 (oracle11g)
- 大浮点数相乘
- 有关项目出错的
- C++多继承构造函数执行顺序
- 观看公开课“我是我的连接体”--自我发现
- 详解 JavaScript 回调函数
- 关于采用matlab进行指定非线性方程拟合的问题
- Ubuntu中文编码配置