Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sqlite处理事务的一个例子大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

事务在数据库中是一个重要的概念,使用事务可以保证数据的统一和完整性。同时也可以提高效率。拿我们上面创建的persons表来说,假设我要一次插入20个人的名字才算是操作成功,那么,在不使用事务的情况下,如果插入过程中出现异常或者在插入过程中出现一些其他数据库操作的话,就很有可能影响了操作的完整性。所以事务可以很好地解决这样的情况,首先事务是可以把启动事务过程中的所有操作视为事务的过程。等到所有过程执行完毕后,我们可以根据操作是否成功来决定事务是否进行提交或者回滚。提交事务后会一次性把所有数据提交到数据库,如果回滚了事务就会放弃这次的操作,而对原来表的数据不进行更改。

那么,如何启动,提交还有回滚事务呢?sqlite中分别是:BEGINCOMMITRolLBACK。下面来看一下例子:


 @try{

char *errorMsg;

if (sqlite3_exec(_database,"BEGIN",NulL,&errorMsg)==@R_71_5607@OK) {

NSLog(@”启动事务成功”);

sqlite3_free(errorMsg);

       sqlite3_stmt *statement;

if (sqlite3_prepare_v2(_database,[@"insert into persons(Name) values(?);" UTF8String],-1,&statement,NulL)==@R_71_5607@OK) {

//绑定参数

const char *text=[@”张三” cStringUsingEnCoding:NSUTF8StringEnCoding];

sqlite3_bind_text(statement,index,text,strlen(text),@R_71_5607@STATIC);


if (sqlite3_step(statement)!=@R_71_5607@DONE) {

sqlite3_finalize(statement);

}

}


if (sqlite3_exec(_database,"COMMIT",&errorMsg)==@R_71_5607@OK) {

NSLog(@”提交事务成功”);

}

sqlite3_free(errorMsg);

}else{

sqlite3_free(errorMsg);

}

}

@catch(NSException *E){

char *errorMsg;

if (sqlite3_exec(_database,"RolLBACK",&errorMsg)==@R_71_5607@OK) {

NSLog(@”回滚事务成功”);

}

sqlite3_free(errorMsg);

}

@finally{

}

大佬总结

以上是大佬教程为你收集整理的sqlite处理事务的一个例子全部内容,希望文章能够帮你解决sqlite处理事务的一个例子所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:那么