sqlite事务处理
2015-09-07 11:50
459 查看
//插入批量数据,可启用事务 - (void)insertDataWithCount:(NSInteger)count isUseTransaction:(BOOL)isUse{ if (isUse) { //手动启用事务 BOOL isError = NO; @try { //写可能出现异常的代码 [_dataBase beginTransaction];//手动开启一个事务 for (int i=0; i<count; i++) { NSString *idStr =[NSString stringWithFormat:@"%d",i]; NSString *stName = [NSString stringWithFormat:@"student%d",i]; NSString *insertSql = @"insert into student(id,name) values(?,?)"; if (![_dataBase executeUpdate:insertSql,idStr,stName]) { NSLog(@"insert error:%@",_dataBase.lastErrorMessage); } } } @catch (NSException *exception) { //捕获到异常 NSLog(@"error:%@",exception.reason); isError = YES; [_dataBase rollback];//回滚,回到最初的状态 } @finally { //无论有没有异常,代码都会执行到此处 if (isError==NO) { [_dataBase commit];//提交事务,让批量操作生效 } } }else{ //常规操作 for (int i=0; i<count; i++) { NSString *idStr =[NSString stringWithFormat:@"%d",i]; NSString *stName = [NSString stringWithFormat:@"student%d",i]; NSString *insertSql = @"insert into student(id,name) values(?,?)"; if (![_dataBase executeUpdate:insertSql,idStr,stName]) { NSLog(@"insert error:%@",_dataBase.lastErrorMessage); } } } }
相关文章推荐
- go-xorm使用mssql的小实例
- 问题五20150907Mysql版本不一致错误
- mysql的主从同步
- C#连接数据库的字符串
- redis安装过程
- redis 安装和配置
- mysql集群理解
- ***redis linux 命令使用总结
- MYSQL查询优化:show profile
- MSSql Server基础学习系列———分组排序
- oracle的卸载
- mysql密码忘记了怎么办?
- MSSql Server基础学习系列———聚合函数
- MSSql Server基础学习系列———数据约束
- 复制表结构sql
- windows安装配置memcache和memcached
- Oracle优化检查表
- MSSql Server基础学习系列———数据删除
- oracle解析xml完成版
- HaProxy 配置Redis高可用集群