sqlite操作数据库函数总结

1、 sqlite3_open
打开数据库函数,若数据库不存在,则创建

//打开数据库
//m_db	数据库句柄
//db_filename	数据库位置
sqlite3* m_db;
if (SQLITE_OK != sqlite3_open(db_filename, &m_db))
{
	return false;
}

2、sqlite3_prepare
准备sql语句

	std::string selectsql = "select * from sqlite_master where name='control_update'";
	sqlite3_stmt *pstmt;
	if (SQLITE_OK != sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))
		return false;

3、sqlite3_step
执行sql语句

	if (SQLITE_DONE != sqlite3_step(pstmt))
		return false;

sqlite3_step返回值解释:
SQLITE_DONE,当执行“insert”和“update”的时候返回此表示执行成功。
SQLITE_ROW,当执行“select”语句的时候肯定会返回多条数据,这个也表示执行成功,但是还没有结束,当返回SQLITE_DONE时表示执行结束,如:

	std::string selectsql = "select typeid,md5 from control_update";
	sqlite3_stmt *pstmt;
	if (SQLITE_OK != sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))
		return false;

	std::map<std::string, std::string>::iterator itr;
	//循环获取返回的数据
	while (SQLITE_DONE != sqlite3_step(pstmt))
	{
		const unsigned char* typeidvalue = sqlite3_column_text(pstmt, 0);
		const unsigned char* md5value = sqlite3_column_text(pstmt, 1);

	}

	sqlite3_finalize(pstmt);

4、sqlite3_exec
sqlite3_exec和sqlite3_step函数的区别:

sqlite3_step() 在执行之前需要调用sqlite3_perpare(),之后需要sqlite3_finalize()
sqlite3_exec() 就是把你提到的三个函数结合在了一起:sqlite3_step(), sqlite3_perpare(), sqlite3_finalize()。
然后提供一个回调函数进行结果的处理。

	char* cErrMsg;
	int res = sqlite3_exec(m_db, "create table control_update(typeid,md5)", NULL, 0, &cErrMsg);
	if (res != SQLITE_OK)
	{
		return false;
	}

5、sqlite3_column_text
获取查询数据,这个是根据类型获取数据。相似的还有sqlite3_column_int、sqlite3_column_double、sqlite3_column_bytes等

	std::string selectsql = "select * from sqlite_master where name='control_update'";
	sqlite3_stmt *pstmt;
	if (SQLITE_OK != sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))
		return false;

	//执行sql语句
	sqlite3_step(pstmt);

	//第二个参数的数字表示获取第几个字段值
	const unsigned char * value = sqlite3_column_text(pstmt, 0);
	sqlite3_finalize(pstmt);

6、sqlite3_close
关闭数据库

sqlite3_close(m_db);
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值