SQLite简单使用(C++)
SQLite简单使用(C++)2011-06-18 11:43:03|分类:C/C++|字号订阅 SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp创建的公有领域项目。 不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
应用Demo: 从官网下载SQLite amalgamation版源码,并将其中的sqlite3.h和sqlite3.c引入新建的C++ Win32 Console Application。 此时编译会产生 C1853报错,原因是sqlite3. c混用了stdafx. cpp产生的 预编译头文件。 打开sqlite3.c的属性页面,并设置“不使用预编译头”,如此可以顺利编译通过。 添加如下的测试代码: 成功执行后会在项目目录内生成一个test.db3文件,通过 SQLiteSpy工具打开后可看到刚才插入的数据: SQLite API简介: 其中 sqlite3_open自然是打开一个SQLite数据库(当该数据库不存在时会自动创建一个空库),相应的 sqlite3_close是关闭数据库。 sqlite3_stmt可以认为是对象级别的SQL语句。对于频繁使用的SQL,可通过 sqlite3_prepare_v2方法将其加工成stmt可以获得性能提升。stmt用完后需要调用相应的 sqlite3_finalize方法来释放底层数据库资源。 SQLite支持有 参数的SQL语句,支持?、?123、:name、@name、$name等多种参数写法。支持一系列的 sqlite3_bind_TYPE方法来进行参数绑定。 可以通过 sqlite3_step方法来执行一个准备好的stmt语句。成功执行时:对于无返回值的语句返回SQLITE_DONE;对于有返回值的语句返回SQLITE_ROW,可通过迭代sqlite3_step方法来访问结果的每一行。 sqlite3_column_TYPE方法可以取得结果行某列的具体值。
[注:本文对应的SQLite版本为3.7.6.3] 参考: SQLite官网: http://sqlite.org/ 维基百科SQLite: http://zh.wikipedia.org/wiki/SQLite 开放源码嵌入式数据库 SQLite 简介: http://www.ibm.com/developerworks/cn/opensource/os-sqlite/ SQLite的应用情形: http://www.sqlite.org/whentouse.html SQLiteSpyGUI前端工具: http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index 推荐阅读: SQLite简单使用(C# ADO.net) SQLite简单使用(C# Linq)2011-6-23 SQLite官方源码不支持加密解密,数据库文件中的数据以全明文的形式存在。不过作者显然仔细考虑过这个问题,留下了实现加密的接口。 我认为作者不引入加密解密功能是明智的,否则随随便便SQLite就变成SQLarge了。把关键的事情做好,就必须舍弃掉某些“需求”。赞同作者的设计抉择,犀利睿智! SQLite Database Encryption/Decryption: http://sqlite-crypt.com/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |