sqlite3常用的c语言函数接口
2016-01-15 09:31
387 查看
sqlite3_open: 用来打开或创建一个sqlite3数据库引擎的连接
在sqlite3数据库引擎中,用结构体sqlite3来表示 sqlite3的数据库引擎 的连接。
我们在调用sqlite3_open这个函数时,它会给我们创建一个sqlite3数据库引擎的连接。
2. sqlite3_exec:操作一个SQL引擎的数据库系统,实际上就是在这个数据库引擎上执行SQL语句
sqlite3_close
代码实列:
在sqlite3数据库引擎中,用结构体sqlite3来表示 sqlite3的数据库引擎 的连接。
我们在调用sqlite3_open这个函数时,它会给我们创建一个sqlite3数据库引擎的连接。
int sqlite3_open( const char *filename, //database fiename, 你要打开或创建的数据库的文件名 sqlite3 **ppdb; //sqlite3这个结构体的二级指针 );
返回值: 成功返回 SQLITE_OK, 并且ppdb指向新创建的sqlite3数据库引擎的连接 其他值,表示失败。
2. sqlite3_exec:操作一个SQL引擎的数据库系统,实际上就是在这个数据库引擎上执行SQL语句
int sqlite3_exec( sqlite * db; //指向sqlite3数据库系统引擎的连接 const char *sql; //你要执行的SQL语句的字符串 int (*callback)(void *, int, char **, char **), //函数指针,指向回调函数 void *, //将作为callback的第一个参数,传给回调函数 char **errmsg //指向错误字符串 ); 返回值: //成功返回0 //失败返回其他值,错误信息在errmsg int (*callback)(void *, int, char **, char **), //函数指针,指向回调函数 callback主要是在SQL语句为SELECT时用,SELECT返回的结果是一个二维表, 在 sqlite3_exec实现查询语句,每查到一条记录,就会把结果返回, 每查到一条符合 条件的记录,就调用callback指向的函数。 int (*callback)(void *, // int, //结果中多少列 char **, //char* column_value[], 指针数组,每列的值 char **, //char* column_name[], 指针数组,每列的字段名 )
sqlite3_close
代码实列:
#include <stdio.h> #include <errno.h> #include <sqlite3.h> /* gcc sqlite3.c -I/usr/local/sqlite/include -L/usr/local/sqlite/lib -lsqlite3 -o sqlite3_test */ /* 查询结果的回调函数,当查询语句每查询到一条符合要求的记录时, 就会调用这个回调函数,并且你的回调函数要返回0(表示成功),查询引擎 才会继续往下面查询。 */ int select_resp(void *data, int column_num ,char *column_value[], char *column_name[]) { int i; for (i = 0; i < column_num; i++) { printf("%s\t", column_name[i]); } printf("\n"); for (i = 0; i < column_num; i++) { printf("%s\t", column_value[i]); } printf("\n\n\n\n"); return 0; } int main(int argc, char *argv[]) { int r; /* step 1: 调用sqlite3_open打开或创建一个sqlite3数据库引擎的连接 */ sqlite3 *db = NULL; r = sqlite3_open(argv[1], &db); if (r != SQLITE_OK) { perror("sqlite3_open error:"); return -1; } /* step 2: sqlite3_exec:执行SQL语句 */ /*const char *sql = "CREATE TABLE db_score\ (\ ID int(4) PRIMARY KEY,\ NAME varchar(32) NOT NULL,\ SCORE int(4)\ ); " ; */ const char *sql = "INSERT INTO db_score VALUES(1, \"ZHOULONG\", 60) ; "; //while (1) //{ int id; char name[32]; int score; //scanf("%d%s%d", &id, name, &score); //if (id == 0) //{ // break; //} //char sql_cmd[64]; //snprintf(sql_cmd,64, "INSERT INTO db_score VALUES(%d, '%s', %d) ; ", id, name, score); //printf("%s\n", sql_cmd); char *sql_cmd = "SELECT ID,NAME FROM db_score WHERE SCORE < 60 ; "; char *errmsg = NULL; //用来保存错误信息 int flag = 0; r = sqlite3_exec(db, sql_cmd, select_resp, &flag, &errmsg); if (r != 0) { printf("sqlite3_exec error : %s\n", errmsg); return -1; } //} /* step 3: 调用sqlite3_close关闭数据库连接 */ sqlite3_close(db);// return 0; }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 如何组织构建多文件 C 语言程序(二)
- 数据库链接字符串查询网站
- 如何写好 C main 函数
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询