标签:
功能: |
简单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文件
运行过程 |
标签:
原文地址:http://www.cnblogs.com/ziyougu/p/4713133.html