在vc环境下支持sqlite3的方法有很多,sqlite官网也有推荐sqlitewrappers列表,我选用的是CppSqlite
建立MFC工程的步骤我就不赘述了,以下操作均假设你已经创建好了一个MFC工程
测试环境:windows7
编译环境:Visual Studio 2015
添加步骤
1、下载压缩文件,我下载的是最新的版本“Download CppSQLite 3.2 demo projects, source and sqlite3.dll for SQLite 3.4.0 - 252 KB”  ,该版本支持SQLite3 3.4
2、解压,将common/文件夹中的CppSQLite3.cpp、CppSQLite3.h、sqlite3.dll、sqlite3.lib四个文件拷贝到你的工程目录下
3、项目->头文件->添加->现有项->在目录中找到CppSQLite3.h并添加;项目->源文件->添加->现有项->找到CppSQLite3.cpp并添加
4、项目右键->属性->链接器->输入中填入sqlite3.lib,自此 你的工程就支持sqlite3啦
类封装说明
介绍几个常用的类:CppSQLiteDB、CppSQLiteQuery
1、CppSQLiteDB
该类主要是对数据库文件的基本操作,包含打开关闭查询等命令,介绍几个常用的函数
a)、open(xxx.db)
功能:打开一个数据库文件
参数:char*类型,数据库文件名
说明:如果该db文件不存在,会创建
b)、close()
功能:关闭数据库文件
参数:无
说明:该函数不需要我们手动调用,CppSQLiteDB的析构函数中会调用
c)、execDML(command)
功能:用于直接执行create/drop/insert/update/delete命令(data manipulation language)
参数:char*类型,要执行的命令
说明:返回值是操作了的行数
d)、execQuery()
功能:用于执行查询信息
参数:执行查询信息的命令
说明:返回值是CppSQLiteQuery类
举例:
CppSQLiteQuery query = db.execQuery("select * from tablename;")
注意:最后需要手动调用query.finalize(),否则,会引起内存泄漏从而导致保存。(文档上说的不用手动释放,目前还没找到原因)
e)、execScalar()
功能:得到当前table的行数
参数:执行命令
说明:返回行数
举例:
int raws = db.execScalar("select count(*) from tablename;")
2、CppSQLiteQuery
CppSQLiteQuery query = db.execQuery("select * from tablename;")
a)、numFields()
功能:得到当前字段数(你可以理解为列数)
参数:无
说明:得到当前的列数
b)、fieldName(int nCols)
功能:得到当前的列标题
参数:某一列的列数(从0开始)
c)、fieldDeclType(int nCols)
功能:得到当前列的元素类型
参数:某一列的列数(从0开始)
这三个函数一般会这样用:

       for (fld = ; fld <query.numFields(); fld++)
{
cout <<query.fieldName(fld) << "(" <<query.fieldDeclType(fld) << ")|";
}
cout << endl;

 

d)、fieldValue(int nCols)
功能:得到当前列的值
参数:某一列的列数(从0开始)
e)、eof()
功能:用于迭代查询结果,与nextRow()配合使用
参数:无
说明:返回值为TRUE时,表示已经到达查询结果的最后一个,终止迭代即可
f)、nextRow()
功能:迭代到查询结果的下一行,长与eof()配合使用
参数:无
这三个函数一般会这样用:

    while (!q.eof())
{
cout << q.fieldValue() << "|"; //得到当前列的值
cout << q.fieldValue() << "|" << endl; //得到当前列的值
q.nextRow();
}
 

在MFC中支持sqlite3的更多相关文章

  1. MFC中使用sqlite3操作数据库

    需要用到的文件有sqlite3.h .sqlite3.dll.sqlite3.lib.网上很多人分享下载地址这里不再赘述. 将这三个文件拷贝到自己新建MFC项目目录下,在解决方案窗口下 添加现有项,选 ...

  2. 控制台应用程序中添加对MFC的支持

    在windows控制台应用程序中,肯能会想使用一些MFC中的类,如CStringArray等,通过下面两步简单的设置可以添加对MFC的支持: 1.右击工程名 -> References 选择 A ...

  3. MFC中对话框类(Dialog)的应用

    转载http://hi.baidu.com/jackywdx/item/feee8041d2c2e12310ee1e85 Windows应用程序通常是通过对话框接收用户输入.向用户输出信息,本节介绍应 ...

  4. MFC中快速应用OpenCV(转)

    转载链接:http://wiki.opencv.org.cn/index.php/MFC%E4%B8%AD%E5%BF%AB%E9%80%9F%E5%BA%94%E7%94%A8OpenCV 简介和缘 ...

  5. 不使用CvvImage类来在MFC中显示图像

    /* * ===================================================================================== * * Filen ...

  6. MFC中树控件CTreeCtrl的用法

    树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用 BOOL ...

  7. 多线程编程之二 ---MFC中的多线程开发

    下载源代码 五.MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环. 工作者线程没有消 ...

  8. SonicUI在MFC中的使用

    SonicUI是一个GUI引擎,提供了一些简单的UI组件实现高效率的UI效果,例如:自绘按钮.异形窗体.动画.超链接和图像操作方法.此项目作者开源到CodeProject,地址为:http://www ...

  9. 在VC/MFC中嵌入Google地图——图文并茂

    近期须要实验室须要将在无人机地面站中嵌入地图,在网上找了非常多资料,最终有些眉目了, 首先.做这个须要用到的知识有.MFC控件.MFC类库.JavaScript脚本语言.Google API.Goog ...

随机推荐

  1. php判断用户是否关注微信公众号

    方法一: <?php     $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_cr ...

  2. BFC是什么及能用它能做什么

    最近较为频繁的碰到了一个新的名词:BFc,每次都可以在相关的技术博客里面看到对其的简单介绍,刚开始以为自己懂了,但实际上没懂,今天就来搞清楚它到底是什么,以及我们能用他做什么? BFC:全名为 Blo ...

  3. dskinlite(uieasy mfc界面库)使用记录3:绘制动态元素(按钮控件通过隐藏方式修改图片显示)

    效果图: 分别是:正常,正常鼠标悬停,按下,按下鼠标悬停 XML代码: 75,76行定义了一个image,注意id和index属性 初始化代码: click代码: 147,148,153,154:通过 ...

  4. SQL Server数据库的兼容级别

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行M ...

  5. 第一次面试经历(hr面)

    经过介绍,我有幸去到一家国际背景的广告公司面试前端开发实习生.收到的邮件是复试通知,看来我已经跳过了第一轮面试. 来到hr请我进了一个小间坐下里填求职书,里面有各种个人信息,有兴趣爱好,有工作经历,以 ...

  6. Python-docx 读取word.docx内容

    第一次写博客,也不知道要写点儿什么好,所以就把我在学习Python的过程中遇到的问题记录下来,以便之后查看,本人小白,写的不好,如有错误,还请大家批评指正! 中文编码问题总是让人头疼,想要用Pytho ...

  7. python3 第二十九章 - 内置函数之tuple相关

    Python元组包含了以下内置函数 序号 方法及描述 实例 1 len(tuple)计算元组元素个数. >>> tuple1 = ('Google', 'Baidu', 'Taoba ...

  8. Java的xml与map,与Bean互转

    xml与map互转,主要使用dom4j import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j. ...

  9. PM学习梳理--搭建产品架构

  10. java日期格式的常用操作

    顾晓北 | 大侠五级 |园豆:9353 | 2016-08-04 16:17     其他回答(1) 0 public class DateUtils extends PropertyEditorSu ...