SQLite第五课 应用案例

1 打开数据库文件

sqlite3* m_db = NULL;

int ret = sqlite3_open_v2("test.db", &db, SQLITE_OPEN_READWRITE, NULL);

if (ret != SQLITE_OK)

{

return;

}

2 如果表不存在,创建表

char szCreateUserDataSql[1024] = "create table if not exists tb_user (id INTEGER ,\

type INTEGER,\

kind INTEGER)";

3 创建唯一的主键ID

char szCreateUserDataSql[1024] = "create table if not exists tb_user (id INTEGER PRIMARY KEY AUTOINCREMENT,\

type INTEGER,\

kind INTEGER)";

4 查询

char szSql[1024] = {0};

sprintf(szSql, "select distinct * from tb_test");

sqlite3_stmt* stmt = NULL;

sqlite3_prepare(m_db, szSql, -1, &stmt, 0);

while (sqlite3_step(stmt) == SQLITE_ROW)

{

const unsigned char*  szPOIName = sqlite3_column_text(stmt, 0);

char szName[128] = {0};

if (szPOIName)

{

sprintf(szName, "%s", szPOIName);

}

int kx = sqlite3_column_int(stmt, 3);

float x = sqlite3_column_double(stmt, 5);

}

sqlite3_finalize(stmt);

5 获取sql执行失败的错误信息

char* errMsg = NULL;

char* szSql = "select * from address";

nRet = sqlite3_exec(pDB, szSql, NULL, NULL ,&errMsg);

if (nRet != SQLITE_OK)

{

cout<<errMsg<<endl;

sqlite3_free(errMsg);

}

注意:释放errMsg指向的内存

6 关闭数据库

sqlite3_close(db);

时间: 2024-11-10 12:59:53

SQLite第五课 应用案例的相关文章

[译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger

第五课 SimpleTrigger 如果你需要在一个指定时间段内执行一次作业任务或是在指定的时间间隔内多次执行作业任务,SimpleTrigger应该能满足你的调度需求.例如,你希望触发器在2015年1月13日上午11:23:54准时触发,或是希望在那个时间点触发,然后再重复触发5次,每隔10秒一次.有了这样的描述,你就不会对SimpleTrigger包含的参数感到奇怪:开始执行时间,结束执行时间,重复次数和重复执行间隔时间.所有的参数都是你期望的那样,只是关于结束执行时间参数有两条特别的提示.

第五课 进程管理

unix_c_05.txt================第五课 进程管理================一.基本概念------------1. 进程与程序~~~~~~~~~~~~~1) 进程就是运行中的程序.一个运行着的程序,可能有多个进程.进程在操作系统中执行特定的任务.2) 程序是存储在磁盘上,包含可执行机器指令和数据的静态实体.进程或者任务是处于活动状态的计算机程序.2. 进程的分类~~~~~~~~~~~~~1) 进程一般分为交互进程.批处理进程和守护进程三类.2) 守护进程总是活跃的

BeagleBone Black板第五课:Shell脚本编程实验

BBB板第五课:Shell脚本编程实验 在一上课我们通过简单的echo命令测试并控制GPIO端口的高低电平输出,实现对一个LED指示灯的点亮和关闭控制,本节将通过Shell脚本编程,来完成两个LED指示灯的交替闪亮的实验. 实验器材:准备两个二极管指示灯,面包板等 使用GPIO端口P8.12和P8.11两个引脚 我们暂时不借助其他工具软件,直接远程登陆到BBB板的图形桌面,使用内置的Ledfpad编辑器来完成Shell脚本的编程. 远程登陆BBB板图形桌面还记得吧,不记得话参考前面的课程,这里就

【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见

内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是什么,以及如何安装Linux系统(我们以Ubuntu这个Linux发行版为以后的演示系统),我们也在上一课终于把Ubuntu安装好了. "很不错,掌声给自己". 安装Ubuntu遇到什么问题,可以在我们的QQ群和微信群提问,也可以私信小编,QQ.微信.邮件都行.联系方式在下面. Linux

斯坦福IOS开发第五课(第一部分)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/27706991 作者:小马 由于第五课的内容比较多,分两部分来写. 一 屏幕旋转基本操作 控制当前的view是否支持旋转,如果是,是支持哪些方向的,有四个方向,分别是home键在下,上,左右. 在当前的viewcontroller里,实现shouldAutorotateToInterfaceOrientation方法,告诉系统你支持的旋转方向,如下: - (BOOL)shouldA

第二十五课:超越抽象极限

1.一个阶跃输入,后面接戴维南电阻,测量点Vout,之后接其他设计电路,末端开路 理论上在同一时刻Vout也发生阶跃(例如 0到5V) 实际上,在t=0是,输出上升到一半,持续一段时间才会继续上升到5V 这是因为当导线非常长时,需要考虑信号传输时间 脉冲到达末端返回到Vo,Vo得到一个回波,两个2.5V相加就达到5V 这个阻抗对于多数导线都等于50欧姆,称之为特性阻抗 解决方法:换短的导线: 改变时钟信号 2.同一个电压对多个反相器供电 前一个反相器在上端导通时,通过的电流变化会在电感上产生压降

NeHe OpenGL教程 第三十五课:播放AVI

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错.你可以试试. 首先我得说我非常喜欢这一章节.Jonat

NeHe OpenGL教程 第二十五课:变形

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十五课:变形 变形和从文件中加载3D物体: 在这一课中,你将学会如何从文件加载3D模型,并且平滑的从一个模型变换为另一个模型. 欢迎来到这激动人心的一课,在这一课里,我们将介绍模型的变形.需要注意的是各个模型必须要有相同的顶点,

【C++探索之旅】第一部分第五课:简易计算器

内容简介 1.第一部分第五课:简易计算器 2.第一部分第六课预告:控制流程,随心所至 简易计算器 上一课<[C++探索之旅]第一部分第四课:内存,变量和引用>中,我们已经学习了挺重要的内存的概念,变量的知识,对引用这个C++中常用的技术也有了初步的了解. 我们在上一课开头处用一个小小计算器的存储技术引出内存的概念.其实我们的电脑兄也是一个计算器,只不过高端大气上档次了很多,不然怎么会被称为 computer呢?英语中compute这个词,正是<计算>的意思,而加上r就构成了名词.c