sqlite3数据库

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

 

函数原型:sql

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

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

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

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

返回值:执行成功返回SQLITE_OK,不然返回其余值;spa

 

函数原型:指针

int sqlite3_close(sqlite3* pDB);code

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

输入参数: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