Sqlite DB使用例子
前一阵字做项目(嵌入式linux),由于要保存大量的数据,而且最长要保存30天的时间。本来打算保存到文件中,每次启动应用程序的时候重新解析一遍,可是当数据量很大的时候,就出现效率的问题了。所以最后还是放弃了使用文件的打算,决定使用数据库存取数据。
linux下的数据库也很多,有开源的,也有收费的。对于我们来说,肯定要使用开源的数据库。以前用过Berkely DB,但是需要licience。所以结合效率性能以及大小限制,最终选定了Sqlite DB。我们对它的评价是“sqlite是一个优秀的完全free的开源数据项目”。
下面是一个简单的使用实例:
int main( int argc, char **argv )
{
sqlite3 *db;
sqlite3_stmt * stmt;
const char *zTail;
//打开数据库
int r = sqlite3_open("mysqlite.db",&db)
if(r){
printf("%s",sqlite3_errmsg(db));
}
//创建Table
sqlite3_prepare(db,
"CREATE TABLE players ( ID INTEGER PRIMARY KEY, name TEXT, age INTERER );",
-1,&stmt,&zTail);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
//插入数据
sqlite3_prepare(db,
"INSERT INTO players (name,num) VALUES(?,?);",
&nbs
相关文档:
// sqlite解决中文路径问题,以前研究sqlite时候遇到的中文路径问题的解决方法
// AnsiString cb中的字符串类,其它编译器用std::string替换即可.
// MultiByteToWideChar是windows api
AnsiString fileName;
int strSize = fileName.Length();
char *ansi = new char[strSize+1];
wchar_t *unico ......
import os
import unittest # 包含单元测试模块
import sqlite3 as sqlite # 包含sqlite3模块
def get_db_path():
return "sqlite_testdb"
class TransactionTests(unittest.TestCase): # 单元测试第一步: 由TestCase派生类
def setUp(self): # 单元测试环境配置
......
1、如果使用sqlite3时出现如下错误:
/!\ FAILSAFE /!\ Thu Jul 30 22:16:15 +0800 2009
Status: 500 Internal Server Error
unknown error
c:/ruby/lib/ruby/1.8/dl/import.rb:29:in `initialize'
c:/ruby/lib/ruby/1.8/dl/import.rb:29:in `dlopen'
&nb ......
sqlite官方站
http://www.sqlite.org/
SQL Syntax
http://www.sqlite.org/lang.html
sqlite中文站
http://www.sqlite.com.cn/
http://www.sqlitechina.org/
建立数据库档案
用sqlite3建立数据库的方法很简单,只要在shell下键入(以下$符号为shell提示号,请勿键入):
$ sqlite3 foo.db
如果目录下没有fo ......
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 = s ......