sqlite--使用数据库

#include"sqlLite.h"
#include"db_sqlite3.h"
#define MAX_SQL_LEN_512 512
#define SQLLITE_TXT_NAME_LEN 64
//获取一个可用连接
#define SQLLITE_FREE_CONN(PCONN)\
     {\
      m_lockMutex.lock();\
      PCONN = GetFreeConn();\
      if(NULL == PCONN)\
      {\
        m_lockMutex.Unlock(); \
        return -1;\
      }\
     };
//打开数据库事务
#define SQLLITE_BEGIN_TRANCTION(PCONN)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->BeginTranction();\
     };
//提交数据
#define SQLLITE_COMMIT(PCONN)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->Commit();\
      m_lockMutex.Unlock();\
     };
//数据回滚
#define SQLLITE_ROLLBACK(PCONN)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->Rollback();\
      m_lockMutex.Unlock();\
     };
//设置SQL
#define SQLLITE_PREPARE(PCONN,PSQL)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->Prepare(PSQL);\
     };

//设置输入输出参数个数
#define SQLLITE_BIND_PARAM_NUM(PCONN,INPUTNUM,OUTPUTNUM)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->BindParamNum(INPUTNUM,OUTPUTNUM);\
     };
//设置输入参数
#define SQLLITE_BIND_PARAM_IN(PCONN,PARAMPOST,PARAMTYPE,PARAMADDR,PARAMMAXLEN)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->BindParam(PARAMTYPE,PARAMPOST,(void*)PARAMADDR,PARAMMAXLEN,SQLLITE_DIRECT_PARAMETER_IN);\
     };
//设置输出参数
#define SQLLITE_BIND_PARAM_OUT(PCONN,PARAMPOST,PARAMTYPE,PARAMADDR,PARAMMAXLEN)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      PCONN->BindParam(PARAMTYPE,PARAMPOST,(void*)&PARAMADDR,PARAMMAXLEN,SQLLITE_DIRECT_PARAMETER_OUT);\
     };
//数据执行
#define SQLLITE_EXECUTE(PCONN,RET)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      RET = PCONN->Execute();\
     };
//查询多条数据时执行数据单步
#define SQLLITE_FETCH_DATA(PCONN,RET)\
     {\
      if(NULL == PCONN)\
      {\
       return -1;\
      }\
      RET = PCONN->FetchData();\
     };
#include<vector>
#include<string>
#include<mutex>
using namespace std;
typedef struct USER_INFO_S
{
 string user_id;
 string name;
 int gender;
};
class CSqlConnection
{
public:
CSqlConnection();
 virtual ~CSqlConnection();
 int ConnectionDB(const char* pcFileName, int nMemberFlag = SQLLITE_UNUSED_MEMBER_DB);
 int AttachDB(const char* pcFileName, const char* pcAliName);
 int CloseDB();
 int InitMemberDB();
 CSqlite3* GeetFreeConn();
 public:
 int QueryValueDB(const char* pcSql, int& nValue);
 int ExecuteSQL(const char* pcSQL);
 int InsertUserListInfoToDB(vector<USER_INFO_S> vecUserListInfo);
 int UpdateUserListInfoToDB(vector<USER_INFO_S> vecUsreListInfo);
 int DeleteUserListInfoToDB(vector<USER_INFO_S> vecUserListInfo);
 int QueryUserListInfoToDB(USER_INFO_S tUserInfo, vector<USER_INFO_S>& vecUserListInfo);
 protected:
 int ExecuteArraySql(string strArray[], int nCount);
 int InitDropTable();
 int InitCreateTable();
 int InitCreateIndex();
 int InitCreateTrigger();
 int ExecuteSQLNoCommit(CSqlite3* pConn, const char* pcSql);
 private:
 CSqlite3* m_pSqliteDBHandle;
 std::mutex m_lockMutex;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2020年冬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值