易截截图软件、单文件、免安装、纯绿色、仅160KB

SQLite数据库使用总结

1.在SQLite中插入当前时间,变量定义不用多说
char *sql = sqlite3_mprintf("insert into Log VALUES(datetime('now', 'localtime'), '%q', '%q')", cUser, cLogContent);
int ret = sqlite3_exec(Sqlite3, sql, NULL, NULL, &pErrMsg);
以月份为单位统计出符合当前月份的记录, Time为数据库中字段名:
char *sql = sqlite3_mprintf("select * from Log where Time>=datetime('now','start of month') order by Time DESC");
sqlite3_prepare(sqlite3_db, sql, -1, &pStmt, &pzTail);
int ret = sqlite3_step(pStmt);
while (ret == SQLITE_ROW)
{
    ...
    ret = sqlite3_step(pStmt);
}
以时间段来查询,界面提示的时间为YYYY-MM-DD格式,cStartTime, cEndTime为char *储存的是时间YYYY-MM-DD:
char *sql = sqlite3_mprintf("select * from Log where Time between datetime('%q','start of day') and datetime('%q','start of
day','+1 day') order by Time DESC", cStartTime, cEndTime);
sqlite3_prepare(sqlite3_db, sql, -1, &pStmt, &pzTail);
int ret = sqlite3_step(pStmt);
while (ret == SQLITE_ROW)
{
    ...
    ret = sqlite3_step(pStmt);
}
2.注意:切记在错误处理中,也要把打开的数据库关闭,不然带来不必要的麻烦
3.大量数据处理是,用事务,事半功倍
4.用sqlite3_open16(L"data.db", &m_sqlite3);打开数据库时,必须加上L


相关文档:

SQLite C/C++接口介绍

这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......

sqlite想到一些事2

sqlite是不错的内存数据库,内存数据库是处理大量并发数据的优先选择。但有些大量数据的并发并不是数据处理本身的问题,例如逻辑上必须有先后次序的数据是并发速度不能解决的问题。抛开这些问题一个简单大容量的解决方案是用一个内存数据库做前端一个硬盘数据库做后端,内存数据库定期把数据同步到后端的硬盘数据库。这个方 ......

嵌入式数据库 SQLite 简介

 自几十年前出现的商业应用程序以来,数据库就成为软件应用程序的主要组成部分。正与数据库管理系统非常关键一样,它们也变得非常庞大,并占用了相当多的系
统资源,增加了管理的复杂性。随着软件应用程序逐渐模块模块化,一种新型数据库会比大型复杂的传统数据库管理系统更适应。嵌入式数据库直接在应用程序进程
中 ......

sqlite的安装

使用版本:sqlite-3.6.14.2
下载地址:http://www.sqlite.org/sqlite-3.6.14.2.tar.gz
首先参考readme的提示:

    tar xzf sqlite.tar.gz    ;#  Unpack the source tree into "sqlite"
    mkdir bld      &nbs ......

sqlite关闭数据库,清除连接池

从网上找的例子,创建了一个数据库,追加了几条记录后,然后关闭数据库,然后准备向PDA下载数据库,发现文件竟然被占用了,已经关闭了数据库连接也无效,后来从网上看到需要清除连接池
using (SQLiteConnection cn = new SQLiteConnection("Data Source=" + strTempPath + "\\Smoke.db3;Pooling=true;FailIfMissing=false ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号