zoukankan      html  css  js  c++  java
  • cocos2dx 中 Sqlite3 事务(Transaction)操作

     

    在sqlite3中,事务是没提炼出一个接口。就只好写到sql语句中,不过倒是不太麻烦。

    sqlite3_exec ( m_pDB , "begin transaction" , 0 , 0 , & errMsg );
    
    sqlite3_exec ( m_pDB , "commit transaction" , 0 , 0 , & errMsg );
    
    sqlite3_exec ( m_pDB , "rollback transaction" , 0 , 0 , &errMsg );
    


    我将事务操作封装到两个函数中,开始和结束时调用。如果关闭数据库时未结束事务, 默认情况是 回滚。

    函数的定义和实现如下:

    /*
    	 *开始一个事物,要在完成事物后调用结束。
    	 *
    	 *返回为SQLITE_XXX标准宏
    	 */
    	 int beginTransaction();
    
    	
    	/*
    	 *结束一个事务。
    	 *参数为先前执行sql语句的返回值,即标志成功还是要回滚。
    	 *
    	 *返回为SQLITE_XXX标准宏
    	 */
    	 int endTransaction(int sqlResult);
    

     

    int DataUtil::beginTransaction()
    {
    	char msg[ERR_LENGTH] = {0};
    	char* errMsg = msg;
    	int result = sqlite3_exec ( m_pDB , "begin transaction" , 0 , 0 , & errMsg );
    	if(result != SQLITE_OK ) 
    		CCLog( "开始事务记录失败,错误码:%d ,错误原因:%s\n" , result, errMsg ); 
    	return result;
    }
    
    int DataUtil::endTransaction(int sqlResult)
    {
    	if (sqlResult ==SQLITE_OK)
    	{
    		char msg[ERR_LENGTH] = {0};
    		char* errMsg = msg;
    		int result = sqlite3_exec ( m_pDB , "commit transaction" , 0 , 0 , & errMsg );
    		if(result != SQLITE_OK ) 
    			CCLog( "提交事务记录失败,错误码:%d ,错误原因:%s\n" , result, errMsg ); 
    		return result;
    	}
    	else
    	{
    		char msg[ERR_LENGTH] = {0};
    		char* errMsg = msg;
    		int result = sqlite3_exec ( m_pDB , "rollback transaction" , 0 , 0 , & errMsg );
    		if(result != SQLITE_OK ) 
    			CCLog( "回滚事务记录失败,错误码:%d ,错误原因:%s\n" , result, errMsg ); 
    		return result;
    	}
    }
    
    


    本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/8966730

     

     

  • 相关阅读:
    linux查看日志文件内容命令tail、cat、tac、head、echo
    改变自己的128种方法,教你变得更优秀!
    php 23种设计模式
    Swoole消息推送
    PHP 出现 502 解决方案
    【centos7】添加开机启动服务/脚本
    curl 参数配置详解
    i系列标准-互联网周刊
    MySQL 设计与开发规范2
    Cocos Creator webviw网页置顶增加返回键的方法
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3095527.html
Copyright © 2011-2022 走看看