热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqlite操作数据库函数总结

1、sqlite3_open打开数据库函数,若数据库不存在,则创建打开数据库m_db数据库句柄db_filename数据库位置sqlite3

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 &#61; "select typeid,md5 from control_update";sqlite3_stmt *pstmt;if (SQLITE_OK !&#61; sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))return false;std::map<std::string, std::string>::iterator itr;//循环获取返回的数据while (SQLITE_DONE !&#61; sqlite3_step(pstmt)){const unsigned char* typeidvalue &#61; sqlite3_column_text(pstmt, 0);const unsigned char* md5value &#61; sqlite3_column_text(pstmt, 1);}sqlite3_finalize(pstmt);

4、sqlite3_exec
sqlite3_exec和sqlite3_step函数的区别&#xff1a;

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

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

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

std::string selectsql &#61; "select * from sqlite_master where name&#61;&#39;control_update&#39;";sqlite3_stmt *pstmt;if (SQLITE_OK !&#61; sqlite3_prepare(m_db, selectsql.c_str(), selectsql.size(), &pstmt, NULL))return false;//执行sql语句sqlite3_step(pstmt);//第二个参数的数字表示获取第几个字段值const unsigned char * value &#61; sqlite3_column_text(pstmt, 0);sqlite3_finalize(pstmt);

6、sqlite3_close
关闭数据库

sqlite3_close(m_db);


推荐阅读
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • Oracle中NULL、空字符串和空格的处理与区别
    本文探讨了在Oracle数据库中使用NULL、空字符串('')和空格('_')时可能遇到的问题及解决方案。重点解释了它们之间的区别,以及在查询和函数中的行为。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • MySQL 基础操作与优化
    本文详细介绍了 MySQL 的基础连接、数据库及表的操作,涵盖创建、修改、删除等常用命令,并深入解析了数据类型、列属性、索引、外键和存储引擎等内容。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
author-avatar
瞬间的永恒2502931493
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有