sqlite3数据库

                            几种常用的sqlite3数据库函数介绍

 

函数原型:

int sqlite3_open(const char* fileName, sqlite3** ppDB);

函数功能:打开一个数据库;若该数据库文件不存在,则自动创建。

输入参数:fileName,待打开的数据库文件名称,包括路径,以’\0’结尾

输出参数:ppDB,返回打开的数据库句柄

返回值:执行成功返回SQLITE_OK,否则返回其他值;

 

函数原型:

int sqlite3_close(sqlite3* pDB);

函数功能:关闭一个打开的数据库;

输入参数:pDB,打开的数据库句柄

返回值:执行成功返回SQLITE_OK,否则返回其他值

 

函数原型:

const char *sqlite3_errmsg(sqlite3* pDB);

函数功能:获取最近调用的API 接口返回的错误说明,

输入参数:pDB,打开的数据库句柄

sqlite3 *ppdb;
ret=sqlite3_open("chat.db",&ppdb);
if(ret!=SQLITE_OK)
{
	printf("sqlite3_client_open:%s\n",sqlite3_errmsg(ppdb));
	exit(1);
}

 

函数原型:

int sqlite3_exec(sqlite3* pDB, const char *sql, sqlite_callback callback, void*para, char** errMsg);

函数功能:编译和执行零个或多个SQL 语句,查询的结果返回给回调函数callback

输入参数:

        pDB,数据库句柄;

        sql,待执行的SQL 语句字符串,以’\0’结尾;

        callback,回调函数,用来处理查询结果,如果不需要回调(比如做insert 或者delete 操作时),可以输入NULL;

        para,用户传入的参数,可以为NULL,该参数指针最终会被传给回调函数callback,供用户在回调函数中使用;

输出参数:errMsg,返回错误信息,注意是指针的指针。

返回值:执行成功返回SQLITE_OK,否则返回其他值

 

回调函数sqlite_callback介绍:

 

函数原型:

int sqlite3_get_table(sqlite3* pDB, const char *sql,char ***pResult, int * rowCount,int * columnCount, char** errMsg);

函数功能:执行SQL 语句,通过一维数组返回结果;一般用于数据记录查询

输入参数:

        pDB,打开的数据库句柄;

        sql,待执行的SQL 字符串,以’\0’结尾;

输出参数:

        pResult,查询结果,是由字符串组成的一维数组(不要以为是二维数组,更不要以为是三维数组)。它的内存布局是:前面是字段名称,后面紧接着每个字段的值;

        rowCount,查询出多少条记录(即查出多少行);

        columnCount,查询出来的记录有多少个字段(多少列);

        errMsg,返回错误信息;

返回值:执行成功返回SQLITE_OK,否则返回其他值

    char sql[128] = {0};
	char **resultp=NULL;
	char *errmsg=NULL;
	int nrow,ncolumn;
																																						
	sprintf(sql,"select * from student;");
	ret=sqlite3_get_table(ppdb,sql,&resultp,&nrow,&ncolumn,&errmsg);
	if(ret!=SQLITE_OK)
	{
		printf("Find failed:%s\n",errmsg);
		sqlite3_free(errmsg);
		exit(0);
	}
	
	int i;
	for(i=0;i<(nrow+1)*ncolumn;i+=3)
	{
		if(!strcmp(resultp[i],f->username))	//如果匹配成功
		{
			return RES_USER_EXIST;
		}
	}

 

 

函数原型:

void sqlite3_free_table(char **result);

函数功能:释放查询结果占用的内存;输入参数:result,通过函数sqlite3_get_table()查询到的记录结果

返回值:无

char **resultp=NULL;
sqlite3_free_table(resultp);	//用完resultp 之后要free

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值