加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

一个简单sqlite3的封装类

发布时间:2020-12-12 23:29:55 所属栏目:百科 来源:网络整理
导读:/* * author: hjjdebug * date: 2011 * sqlite 数据库,包含4个文件sqlite3.lib sqlite3.dll sqlite3.h sqlite3.def * 用navicat for sqlite 工具观察数据库文件.sqlite 文件 * 我很佩服开源精神。 * 一个简单sqlite的封装类,留个纪念吧 */ #include "sqlit

/* * author: hjjdebug * date: 2011 * sqlite 数据库,包含4个文件sqlite3.lib sqlite3.dll sqlite3.h sqlite3.def * 用navicat for sqlite 工具观察数据库文件.sqlite 文件 * 我很佩服开源精神。 * 一个简单sqlite的封装类,留个纪念吧 */ #include "sqlite3.h" #include "stdio.h" #define DEBUGLEVEL 0 using namespace std; class DbClip { sqlite3 *db; public: int open(char *filePath) { int ret = sqlite3_open(filePath,&db); return ret; } int create() { char sql[1000] = "create table clips(id integer primary key,start integer,end integer,create_time datetime);"; int ret=sqlite3_exec(db,sql,0); return ret; } int insert(int id,int start,int end) { char sql[1000]; sprintf(sql,"insert into clips values (%d,%d,datetime('now','localtime'));",id,start,end); return sqlite3_exec(db,0); } int queryMaxId() { sqlite3_stmt * stmt; char sql[1000] = "select max(id) from clips;"; sqlite3_prepare(db,-1,&stmt,0); int rc = sqlite3_step(stmt); if(rc==SQLITE_ROW) { int n = sqlite3_column_int(stmt,0); return n; } return -1; } int query(vector<ClipNode> &allNodes,vector <int> &ids) { char sql[512*1024]; char buffer[256]; int n_row=0,n_column=0; char **azResult; //存放结果 sprintf(sql,"select bpts,epts from clips where id in (%d",ids[0]); // sprintf(sql,"select bpts from clips;"); for(unsigned i=1; i<ids.size(); i++) { itoa(ids[i],buffer,10); strcat(sql,","); strcat(sql,buffer); } strcat(sql,");"); sqlite3_get_table(db,&azResult,&n_row,&n_column,NULL); #if (DEBUGLEVEL > 3) //其中nrow为行数,ncolum为列数 printf("/nThe result of querying is : /n"); for(int i=1;i<n_row+1;i++) { for(int j=0;j<n_column;j++) printf("%s ",azResult[i*n_column+j]); printf("/n"); } #endif int index=2; // 跳开开始的一个空元素 ClipNode node; for(int i=0; i<n_row; i++) { node.beginVideoPts =_atoi64(azResult[index]); node.endVideoPts = _atoi64(azResult[index+1]); index+=2; allNodes.push_back(node); } return true; } int close() { return sqlite3_close(db); } };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读