数据库编程/SQL
Chinamming
这个作者很懒,什么都没留下…
展开
-
SQlite数据库的C编程接口(二) 数据库连接 ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(二) 数据库连接 by斜风细雨QQ:253786989 2012-02-03 库初始化[cpp] view plaincopyprint?int sqlite3_initialize(void); int sqlite3_shutdown(void); int sqlite3_initialize(voi转载 2013-11-30 23:47:25 · 893 阅读 · 0 评论 -
SQlite数据库的C编程接口(六) 返回值和错误码(Result Codes and Error Codes) ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(六) 返回值和错误码(Result Codes and Error Codes) by斜风细雨QQ:253786989 2012-02-07标准码(Standard Codes) 下面是标准的返回值和错误码定义:[cpp] view plaincopyprint?#define SQLITE_OK转载 2013-11-30 23:49:28 · 1558 阅读 · 0 评论 -
SQLite C++操作类
为了方便SQLite的使用,封装了一个SQLite的C++类,同时支持ANSI 和UNICODE编码。代码如下:头文件(SQLite.h)[cpp] view plaincopyprint?/******************************************************************** filename: S转载 2013-11-30 23:45:13 · 10966 阅读 · 9 评论 -
SQLite剖析(10):异步IO模式、共享缓存模式和解锁通知
下面介绍SQLite的一些扩展模块。本文整理自http://sqlite.org/docs.html。 1、异步I/O模式 通常,当SQLite写一个数据库文件时,会等待,直到写操作完成,然后控制返回到调用程序。相比于CPU操作,写文件系统是非常耗时的,这是一个性能瓶颈。异步I/O后端是SQLite的一个扩展模块,允许SQLite使用一个独立的后台线程来执行所有的写请求。虽然这转载 2013-12-01 00:01:26 · 7840 阅读 · 0 评论 -
SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(四) 绑定参数(Bound Parameters) by斜风细雨QQ:253786989 2012-02-05 语句参数(statement parameters)是指插入到SQL命令字符串中的特殊字符,他们作为临时占位符。当一条语句在prepare之后,尚未执行之前,可以给这些占位符绑定指定的值。参数符号(Parameter Tokens转载 2013-11-30 23:48:28 · 947 阅读 · 0 评论 -
SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) by斜风细雨QQ:253786989 2012-02-09 对于《Using SQLite》的这一节内容,理解的不是很清楚。有时间要仔细看看SQLite的文档:http://www.sqlite.org/lockingv3.html(File Locking And Concurrency I转载 2013-11-30 23:49:59 · 1101 阅读 · 0 评论 -
SQlite数据库的C编程接口(八) 工具函数(Utility Functions) ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(八) 工具函数(Utility Functions) by斜风细雨QQ:253786989 2012-02-10 SQLite还有一些比较有用的工具函数,虽然对于基本的数据库任务可能不需要使用它们。版本管理(Version Management)(1)[cpp] view plaincopyprint?c转载 2013-11-30 23:50:29 · 894 阅读 · 0 评论 -
一步一步实现C++操作SQLite数据库
一步一步实现C++操作SQLite数据库 SQLite,是一款轻型的数据库,是遵守ACID的关联式关系数据库,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同样的代码可以实现跨平台编译,这个数据库和微软的Access很象,都是小型的数据库管理系统,最大的差别为s转载 2013-11-30 23:45:42 · 2536 阅读 · 0 评论 -
SQLite剖析(5):体系结构
本文整理自http://sqlite.org/arch.html。 本文描述SQLite库的体系结构。这些内容对于那些想了解和修改SQLite内部结构的人将会非常有用。在探索前我们先下载源码包sqlite-src-3071400.zip,在其src目录下包含了所有源码文件。注意若要编译SQLite库则下载单一文件版本sqlite-amalgamation-3071400.zip。转载 2013-11-30 23:53:50 · 1256 阅读 · 0 评论 -
SQlite数据库的C编程接口(五) 便捷函数(Convenience Functions) ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(五) 便捷函数(Convenience Functions) by斜风细雨QQ:253786989 2012-02-07 SQlite拥有很多早期遗留下来的便捷函数,这些函数存在很多缺点。当然他们依然存在就有理由——使用方便。 它们的优点也仅仅是使用方便,而不是具有很好的性能。相反,它们的性能会比直接调用PUBLIC API函数更差一些。对于转载 2013-11-30 23:48:59 · 915 阅读 · 0 评论 -
SQlite数据库的C编程接口(一) 简介 ——《Using SQlite》读书笔记
SQlite数据库的C编程接口(一) 简介 by斜风细雨QQ:253786989 2012-02-01 客户应用程序可以通过SQlite提供的C API与SQlite library和数据库引擎交互,从而完成相应的数据操作。c/c++编程语言可以直接使用这些native C APIs,对于其它一些编程语言包括Python等脚本语言,可以通过一些第三方封装库来访问SQli转载 2013-11-30 23:47:02 · 1212 阅读 · 0 评论 -
SQlite数据库的C编程接口(三) 预处理语句(Prepared Statements) ——《Using SQlite》读书笔记 .
SQlite数据库的C编程接口(三) 预处理语句(Prepared Statements) by斜风细雨QQ:253786989 2012-02-04 SQlite3数据库连接完成之后,就可以执行SQL命令了。下面将要介绍的prepare和step函数都是用来操作和执行SQL命令的。 典型的函数操作流程(伪代码):[cpp] view plainco转载 2013-11-30 23:47:53 · 1179 阅读 · 0 评论 -
基于SQLITE数据库的C语言编程
出自这里一 SQLITE 操作入门sqlite 提供的是一些 C 函数接口,你可以用这些函数操作数据库。通过使用这些接口,传递一些标准 sql 语句(以 char * 类型)给 sqlite 函数, sqlite 就会为你操作数据库。sqlite 跟 MS 的 access 一样是文件型数据库,就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引、触发器等等,但转载 2013-11-30 23:44:36 · 1184 阅读 · 0 评论 -
SQLite剖析(1):功能特性
本文整理自SQLite官网上的文档http://sqlite.org/sitemap.html。 SQLite是遵守ACID的轻型数据库引擎,它包含在一个相对小的C库中。它是D.RichardHipp创建的公有领域项目。SQLite第一个Alpha版本诞生于2000年5月,至今已经有12个年头,当前版本为3.7.14。不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的转载 2013-11-30 23:51:52 · 1333 阅读 · 0 评论 -
SQLite剖析(2):编译及应用
若要编译SQLite库,需要下载单一文件版本sqlite-amalgamation-3071400.zip。它把sqlite3库的所有源码文件内容放到一个文件sqlite3.c中了(不包含管理工具shell.c),这个文件大概有110000多行,如果除去空白行和注释,则有65000多行的代码!这样做的好处是很容易应用在你的项目中,只需拷贝这一个源文件到你项目中即可。另外,编译器在编译单一的文件时能转载 2013-11-30 23:52:31 · 1034 阅读 · 0 评论 -
SQLite剖析(4):数据类型
本文整理自http://sqlite.org/datatype3.html。 许多SQL数据库引擎(除SQLite之外的各种SQL数据库引擎)使用静态、严格的数据类型。对于静态类型,一个值的数据类型由它的容器,即存储这个值的列来决定。SQLite则使用更加通用的动态类型系统。在SQLite中,一个值的数据类型被关联到这个值本身,而不是它的容器。SQLite的动态类型系统向后兼容一般静态类转载 2013-11-30 23:53:28 · 5307 阅读 · 0 评论 -
SQLite剖析(3):C/C++接口介绍
本文整理自http://sqlite.com/cintro.html。 SQLite 3是SQLite一个全新的版本,它虽然是在SQLite 2的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API。SQLite 3是为了满足以下的需求而开发的: * 支持UTF-16编码 * 用户自定义的文本比较方法 * 可以对BLOBs字段建立索引转载 2013-11-30 23:52:56 · 2617 阅读 · 0 评论 -
SQLite剖析(9):动态内存分配
本文整理自http://sqlite.org/malloc.html。 SQLite通过动态内存分配来获取各种对象(例如数据库连接和SQL预处理语句)所需内存、建立数据库文件的内存Cache、以及保存查询结果。我们做了很多努力来让SQLite的动态内存分配子系统可靠、可预测、健壮并且高效。本文概述SQLite的动态内存分配,软件开发人员在使用SQLite时可以据此获得最佳性能。转载 2013-11-30 23:56:10 · 1711 阅读 · 0 评论 -
SQLite剖析(8):原子提交原理
1. 引言像SQLITE这样支持事务的数据库的一个重要特性是“原子提交”。原子提交意味着,一个事务中的所有修改动作要么全都发生,要么一个都不发生。有了原子提交,对一个数据库文件不同部分的多次写操作,就会像瞬间同时完成了一样。当然,现实中的存储器硬件会把写操作串行化,并且写每个扇区都会花上那么一小段时间,所以,绝对意义上的“瞬间同时完成”是不可能的。但SQLITE的原子提交逻辑还是让整个过转载 2013-11-30 23:55:37 · 1619 阅读 · 0 评论 -
SQLite剖析(6):临时文件和内存数据库
1、7种临时文件 内容整理自http://sqlite.org/tempfiles.html。 SQLite的一个不同特性是一个数据库由单个磁盘文件构成。这简化了SQLite的使用,因为移动或备份数据库只要拷贝单个文件即可。这也使得SQLite适合用作应用程序文件格式。但是,当在单个文件中存储一个数据库时,SQLite会在处理数据库的过程中使用许多临时文件。 SQLi转载 2013-11-30 23:54:14 · 1011 阅读 · 0 评论 -
SQLite剖析(7):锁和并发控制
本文整理自http://sqlite.org/lockingv3.html。 在SQLite中,锁和并发控制机制都是由pager.c模块负责处理的,用于实现ACID(Atomic, Consistent, Isolated和Durable)特性。在含有数据修改的事务中,该模块将确保或者所有的数据修改全部提交,或者全部回滚。与此同时,该模块还提供了一些磁盘文件的内存Cache功能。转载 2013-11-30 23:54:41 · 1061 阅读 · 0 评论