Objective-c – iOS SQLite FMDB交易..正确使用?

Objective-c – iOS SQLite FMDB交易..正确使用?,第1张

概述我将尝试使用FMDB SQLite iOS包装器进行交易. 文档对交易有点模糊,但从快速浏览一些功能我已经提出了以下逻辑: [fmdb beginTransaction]; // Run the following query BOOL res1 = [fmdb executeUpdate:@"query1"]; BOOL res2 = [fmdb executeUpdat 我将尝试使用FMDB sqlite iOS包装器进行交易.

文档对交易有点模糊,但从快速浏览一些功能我已经提出了以下逻辑:

[fmdb beginTransaction];    // Run the following @R_301_5962@    BOol res1 = [fmdb executeUpdate:@"@R_301_5962@1"];    BOol res2 = [fmdb executeUpdate:@"@R_301_5962@2"];if(!res1 || !res2) [fmdb rollback];else [fmdb commit];
解决方法 如果第一次失败,我不会尝试第二次更新.
bool ret = false;[fmdb beginTransaction];ret = [fmdb executeUpdate:@"@R_301_5962@1"];if (ret){    ret = [fmdb executeUpdate:@"@R_301_5962@2"];    if (!ret)    {         // report error 2    }}if(ret) {    if (![fmdb commit])    {        // panic!    }}else{    if (![fmdb rollback])    {        // panic!    }}

对于偏执狂的鲁棒性,你应该尝试… catch块,以防任何事情引起异常.如果你这样做,你可以利用它来获得优势.

[fmdb beginTransaction];@try{    if (![fmdb executeUpdate:@"@R_301_5962@1"])    {        // report error        @throw someExcpetion;    }    if (![fmdb executeUpdate:@"@R_301_5962@2"])    {        // report error        @throw someExcpetion;    }    [fmdb commit]}@catch(NSException* e){    [fmdb rollback];    // rethrow if not one of the two exceptions above}
总结

以上是内存溢出为你收集整理的Objective-c – iOS SQLite FMDB交易..正确使用?全部内容,希望文章能够帮你解决Objective-c – iOS SQLite FMDB交易..正确使用?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1249726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存