Linux C SQLite3 编程

SQLite3

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

  1. Host System: Archlinux  
  2. gcc: 4.6.1 20110819  
  3. sqlite3: 3.7.8 20110919  

系统一般没有默认安装sqlite数据库,所以先要安装sqlite3:

  1. # pacman -S sqlite3  
可以使用"sqlite3 + 数据库名"来打开一个数据库。

常用函数

  1. sqlite3_open(const char *filename, sqlite3 **ppDb);  
  2. sqlite3_close(sqlite3 *db);  
  3. sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**),  void *, char **errmsg);  

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

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

相关推荐