1.sqlite函数接口
SQLite应用编程接口API非常简单易用,只需要三个用来执行SQL和获得数据的函数。它还是可以扩展的,允许程序员自定义函数然后以callback的形式集合进去。C语言API是其它接口的基础,开放源码团体基于此已经扩展了众多的客户接口,使得其他语言对sqlite的使用也成为可能。
创建或打开数据库
执行语句
关闭数据库
2. SQLite编程实例
Sqlite应用程序实例
编写测试文件
$ vi test_sqlite.c
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
int main(void)
{
sqlite3 *db;
char *zErrMsg = 0;
char **resultp;
int nrow;
int ncolumn;
char *errmsg;
int i,j;
// create db test.db
if( (sqlite3_open("people.db", &db)) != 0 ){
fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db));
exit(1);
}
// create table
if( (sqlite3_exec(db, "create table person(name varchar(30) PRIMARY KEY, age int);", NULL, NULL, &zErrMsg)) != SQLITE_OK){
fprintf(stderr, "SQL error: %sn", zErrMsg);
exit(1);
}
// insert into table
sqlite3_exec(db, "insert into person values('zhouxh', 30)", NULL, NULL, &zErrMsg);
sqlite3_exec(db, "insert into person values('hongdy', 28)", NULL, NULL, &zErrMsg);
sqlite3_exec(db, "insert into person values('xuhong', 26)", NULL, NULL, &zErrMsg);
// query from table
sqlite3_get_table(db, "select * from person", &resultp, &nrow, &ncolumn, &errmsg);
// print query result
for(i=0;i<=nrow;i++)
{
for( j=0;j<ncolumn;j++){
printf("%st",resultp[i*ncolumn+j]);
}
printf("n");
}
// close db
sqlite3_close(db);
return(0);
}
编译、运行
如果使用RPM包安装方式,编译时sqlite.h头文件自动到/usr/include目录去查找,sqlite3.so库文件自动到/usr/lib目录去查找。
如果使用源码安装方式,编译时应加上头文件和库文件搜索路径。
$ gcc test_sqlite.c –I /usr/local/sqlite/include –L /usr/local/sqlite/lib -lsqlite3 -o test_sqlite
$ export LD_LIBRARY_PATH=/usr/local/sqlite/lib:$LD_LIBRARY_PATH
$ ./test-sqlite