sqlite3 C language API简单例子

功能:

简单C语言使用sqlite3 API程序
注意:  (1)为了节省篇幅,程序中没有写处理错误的代码
(2)环境centOS6.5系统,数据库sqlite3,编译器gcc

 

 

 

 

 

/*
    文件名称 : test.c
    
    用到的接口: 
        打开数据库:sqlite3_open()
        关闭数据库:sqlite3_close()
        执行语句 :sqlite3_exec()
*/

#include <stdio.h>
#include <sqlite3.h>    // sqlite3 API库

// sqlite3_exec()中使用的回调函数
static int callback_selectAll(void *, int, char **, char **);

int main(void)
{
    // 用来存储数据库名称
    const char * db_name = "company.db";
    
    // 打开数据库,如果没有该数据库则创建
    sqlite3 * pdb = NULL;
    sqlite3_open(db_name, &pdb);
    
    // 创建一个表格
    sqlite3_exec(pdb, "create table person(id integer primary key autoincrement, name char(32) )", NULL, NULL, NULL);    
    
    // 在表格中插入数据
    sqlite3_exec(pdb, "insert into person (name) values (\"shang\")", NULL, NULL, NULL);
    sqlite3_exec(pdb, "insert into person (name) values (\"guan\")", NULL, NULL, NULL);
    sqlite3_exec(pdb, "insert into person (name) values (\"yuan\")", NULL, NULL, NULL);
    sqlite3_exec(pdb, "insert into person (name) values (\"xia\")", NULL, NULL, NULL);
    
    // 用select * 来全部显示
    sqlite3_exec(pdb, "select * from person", callback_selectAll, NULL, NULL);
    
    // 关闭数据库
    sqlite3_close(pdb);

    return 0;
}

// 回调函数中有两个参数没有用到
// n_clumn 存储列数 (id, name)共两列
// column_value 列值 例如 1 shang,2 guan
// 其他两个参数没有用到
int callback_selectAll(void * params, int n_clumn, char **column_value, char ** column_name)
{
    int i = 0;
    
    // 打印表中的值
    for (; i<n_clumn; i++)
    {
        printf("%s    ", column_value[i]);
    }
    printf("\n");
    
    return 0;
}

 

# makefile文件
# -lsqlite3是编译链接数据库必须的选项 must=-lsqlite3 -Wall # 依赖文件 src=test.c # 编译 .PHONY: test: gcc $(src) $(must) -o test # 虚目标 .PHONY: clean: rm -rf test # 在终端输入 make test 进行编译 # 最终生成可执行文件 test # 在终端户如 ./test 查看运行结果 # 在终端输入 make clean 清理不用的test文件

运行过程
posted @ 2015-08-08 14:43  自由故  阅读(661)  评论(0编辑  收藏  举报