sqlite3 api学习笔记

前端之家收集整理的这篇文章主要介绍了sqlite3 api学习笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

sqlite3中有5种数据类型:int real text null blob

sqlite3中的列的数据类型不是固定的,列的数据类型随着实际插入的数据的格式而定;

sqlite3中使用sql时,有一个非常有趣而有强大的概念:相似类型。引入相似类型的概念,主要是为了兼容各种数据库sqlserver oracle MysqL等)的sql语法。

sqlite3中常用的几个函数:

int sqlite3_open(const char * filepath,sqlite3 **ppDb)

打开一个数据库连接,filepath就是数据库文件,如果数据库文件不存在,该函数会创建这个数据库文件

ppDb是输出参数,当成功创建数据库连接时,(*ppDb)会指向一个sqlite3对象;当创建数据库连接失败是,(*ppDb)为NULL。

当成功创建数据库连接时,此函数返回sqlITE_OK,否则返回错误代号。

打开数据链接后,我们一般需要执行一些sql语句,在执行sql之前,需要编译这些sql语句:

sqlite3_prepare_v2(sqlite3 *pDb,const char * psql,int nBytes,sqlite3_stmt **ppSamt,const char **pTail)

调用函数时,我们一般将 nBytes设为-1,这表示我们希望编译由psql指定的sql语句: psql开始到\0结尾的字符串,该字符串会被视为用UTF-8编码

而将**pTail设为NULL

ppStamt为输出参数,当成功编译sql语句时,(*ppStmt)会指向一个sqlite3_stmt对象;当编译sql语句失败时,(*ppStmt)会被设为NULL。

pDb就是所代开的数据库链接

当成功编译sql语句时,此函数返回sqlITE_OK,否则返回错误代号

例子: sqlite3_preapare_v2(pDb,"create table TestTable(string TEXT)",-1,ppStmt,NULL)

有个函数非常利于调试用,它是const char *sqlite3_errmsg(sqlite3 *pDb),此函数返回上次操作sqlite3数据时,识别的错误的信息。

注意:此函数的返回的 字符串,不需我们自己调用sqlite3_free()释放。

如:if(sqlite3_prepare_v2(..) != sqlITE_OK){

printf("error message:",sqlite3_errmsg(pDb));

}

编译好sql语句后,我们就需要执行这些语句:

int sqlite3_step(sqlite3 *pDb,sqlite3_stmt *pStmt)

sql语句是insert、delete、drop或delete时,只需调用函数一次,然后检查它是否返回sqlITE_DONE即可;

如果sql语句是select,因为select可能返回多行数据,此时,此时,每调用一次sqlite3_step()就相当fetch下一行数据,当sqlite3_step()成功fetch一行数据时,返回sqlITE_ROW,当fetch完所有的数据时,再调用sqlite3_step()后会返回sqlITE_DONE

当不在需要使用sqlite3_stmt对象时,需要调用sqlite_finalize(sqlite3_stmt *pStmt)释放掉

当不再需要进行数据库操作时,需要调用sqlite_close(sqlite3 *pDb)关闭数据库链接

原文链接:https://www.f2er.com/sqlite/201867.html

猜你在找的Sqlite相关文章