ACTom 发表于 2011-10-26 04:38:06

Linux C SQLite3 编程

SQLite3


SQLite是一个轻量级的数据库。和常用的MySQL大同小异。和MySQL相比,数据类型基本一样,只是sqlite的指令都是以"."开头(如:mysql中查看当前有哪些数据库是“showdatabases",而sqlite中是".databases")。当然,SQL语句都是一样的语法规则。

[*]Host System: Archlinux
[*]gcc: 4.6.1 20110819
[*]sqlite3: 3.7.8 20110919

系统一般没有默认安装sqlite数据库,所以先要安装sqlite3:# pacman -S sqlite3 可以使用"sqlite3 + 数据库名"来打开一个数据库。




常用函数

[*]sqlite3_open(const char *filename, sqlite3 **ppDb);
[*]sqlite3_close(sqlite3 *db);
[*]sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**),void *, char **errmsg);

这三个函数基本上能完成对sqlite3的所有操作。需要用的头文件为"sqlite3.h"。

打开(新建)数据库sqlite3 *db;
sqlite3_open(<font color="#0000ff">"test.db"</font>, &db);关闭数据库sqlite3_close(db);执行sql语句(以创建表为例)char sql;
memset(sql, '\0', 128);
sprintf(sql, "%s%s%s", "create table ", "test_tb", "(id INTEGER PRIMARY KEY, data TEXT)");
sqlite3_exec(db, sql, NULL, NULL, NULL);
sqlite3_exec中第一个和第二个参数的意义很好理解。第三个参数是一个回调(callback)函数。第四个参数可用于给回调函数传入一个参数。第五个参数为这条sql语句执行后的返回。我试了好几次,第五个参数的返回值打印出来都是乱码,所以建议直接查看sqlite3_exec函数的返回指,它返回一个整型的数,可以通过这个数字来得知的执行结果。

伽岚 发表于 2011-11-29 17:16:09

就6个函数?常用?!!!好强大的数据库,对SQL语言依赖比较大的吧?可以使用exec执行很多东西吧!

qzuser 发表于 2013-1-4 07:38:05

Tom 发表于 2013-1-5 14:48:19

qzuser 发表于 2013-1-4 07:38 static/image/common/back.gif
说的还行。有借鉴意义。
结果集的后续处理还需要详细说明。

好吧,这是我早期转的一些资料,改天再补全吧~

qzuser 发表于 2013-2-5 20:50:11

ekd123 发表于 2013-7-27 00:45:44

强烈要求再补!!!
页: [1]
查看完整版本: Linux C SQLite3 编程