加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQlite3中级篇(C/C++编程接口)

发布时间:2020-12-12 20:38:17 所属栏目:百科 来源:网络整理
导读:/*SQLite数据库SQLite是一个开源的嵌入式关系数据库,在2000年由D.Richard Hipp发布。SQLite能够减少应用程序管理数据库的开销,可逢移植性好,高效而且可靠。SQLite嵌入到应用程序中,与应用程序共用相同的进程空间,而不是单独的一个进程。从外部看,SQLit
/*
SQLite数据库SQLite是一个开源的嵌入式关系数据库,在2000年由D.Richard Hipp发布。SQLite能够减少应用程序管理数据库的开销,可逢移植性好,高效而且可靠。SQLite嵌入到应用程序中,与应用程序共用相同的进程空间,而不是单独的一个进程。从外部看,SQLite并不像一个关系数据库,但在进程内部,却是完整的、自包含的数据库引擎。
*/
//应用到的函数:	
sqlite3_open();		//打开数据
sqlite3_exec();		//执行SQL语句
sqlite3_close()		//关闭数据
/*
函数参数介绍
*/

//打开数据
	int sqlite3_open(		//打开数据库,并得到数据句柄
	"temp.db",//要打开的数据库文件名,如果没有者新建个数据库文件
	&db					//保存打开数据库的数据库指针
	);

//执行SQL语句
	typedef int (*sqlite3_callback)(	//sqlite3_exec()的回调函数
	void * para,//可传入指针(比如结构指针)要经过强制转换才能用
	int n_column,//记录有多少个字段(即这条记录有多少列)
	char ** column_value,//个关键值,查出来的数据都保存在这里
	char ** column_name	//跟前个char**是对应的,表示这个字段的字段名称	
	);
	
	int sqlite3_exec(						//执行SQL语句,没有返回值的3,4直接NULL
		sqlite3*,//数据库句柄
	const char *sql,//要执行的数据语句字符串的首地址
	int (*callback)(void*,int,char**,char**),//(*sqlite3_callback)的地址
		void *,//Callback函数第一个参数指针
		char **errmsg						//执行完所有SQL返回0,否者返回错误代码
	);

	int sqlite3_close(			//关闭之前打开的数据库
	sqlite3 *				//要关闭的数据指针
	);
//应用例子
#include <stdio.h>
#include <string.h>
#include "sqlite3.h"

//sqlite3的回调函数       
//sqlite每查到一条记录,就调用一次这个回调
//回调函数原型:typedef int (*sqlite3_callback)(void*,char**);
int LoadMyInfo(void* para,int n_column,char** column_value,char** column_name)
{
	int i;
	printf("记录包含%d个字段nn",n_column);
	for(i=0;i<n_column;i++)
	{
		printf("字段名:%st字段值:%snn",column_name[i],column_value[i]);
	}
	printf("------------------------------n");
	return 0;
}

int main(int argc,char *argv[])
{
	sqlite3 * db;
	int result;
	char * errmsg = NULL;
	result = sqlite3_open("temp.db",&db);

	//数据库操作代码

	/*创建一个测试表,表名叫MyTable_1,有2个字段:ID和name。其中ID是一个自动增加的类型,以后insert时可以不去指定这个字段,它会自己从0开始增加*/
//	result = sqlite3_exec(db,"create table MyTable(ID integer primary key autoincrement,name nvarchar(32))",NULL,&errmsg);

	//插入一些记录
	/*
  	result = sqlite3_exec(db,"insert into MyTable(name) values('走路')",&errmsg);
  	result = sqlite3_exec(db,"insert into MyTable(name) values('骑单车')","insert into MyTable(name) values('坐汽车')",&errmsg);
	*/


	//开始查询数据库
	result = sqlite3_exec(db,"select * from MyTable",LoadMyInfo,&errmsg);

	//关闭数据库
	sqlite3_close(db);
	return 0;
}

点击程序源代码下载

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读