sqlite--访问数据库

#include"sqlite3.h"
#include<map>
using namespace std;
#define SQLITE3_USE_MEMORY_DB 1 //使用内存数据库
#define SQLITE3_UNUSE_MEMORY_DB 0
#define SQLITE3_MAX_PARAMETER_IN 100
#define SQLITE3_MAX_PARAMETER_OUT 100
#define SQLITE3_DIRECT_PARAMETER_IN 0
#define SQLITE3_DIRECT_PARAMETER_OUT 1
#define SQLITE3_INTER_BYTE_LENGTH 1
#define SQLITE3_INTER_SHORT_LENGTH 2
#define SQLITE3_INTER_INT_LENGTH 4
#define SQLITE3_SAVE_FILE_TO_MEMORY 0
#define SQLITE3_SAVE_MEMORY_TO_FILE 1
#define SQLITE3_SUCCESS_GET_DATA 1
#define SQLITE3_ERROR_GENERAL_NULL -1
#define SQLITE3_ERROR_MAX_PARAMETER -2
#define SQLITE3_ERROR_UNKNOW_PARAMETER -3
typedef struct tagParamInfo
{
 int nParamType;
 int nParamLen;
 void* pParamAddr;
}tParamInfo;
class CSqlite3
{
public:
 CSqlite3();
 virtual ~CSqlite3();
 int OpenDB(const char* pcFileName, int nMemberFlag = SQLITE3_UNUSE_MEMORY_DB);
 int LoadOrSaveDB(const char* pcFileName, int nIsSave = SQLITE3_SAVE_MEMORY_TO_FILE,
  const char* pcAliNameSrc = "main", const char* pcAliNameDst = "main");
  int AttachDB(const char* pcFileName, const char* pcAliName);
 int CloseDB();
 int VacumDB();
 int Prepare(const char* pcStrSql);
 int BindParamNum(int nParamInNum, int nParamOutNum);
 int BindParam(int nParamType, int nParamPost, void* pParamAddr, int nParamMaxLen, int ParamDirection);
 int FetchData();
 int Commit();
 int Execute();
 int Rollback();
 int BeginTranction();
 int EndTranction();
 private:
 int BindParamIn(int nParamType, int nParamPost, void* pParamAddr, int nParamMaxLen);
 int BindParamOut(int nParamType, int nParamPost, void* pParamAddr, int nParamMaxLen);
 int GetData2Param();
 private:
 sqlite3* m_pdb;
 int m_nParamInMaxCnt;
 int m_nParamOutMaxCnt;
  map<int, tParamInfo> m_mapParamOut;
 sqlite3_stmt* m_pSqliteStmt;
};
  • 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、付费专栏及课程。

余额充值