SQLite3

embedded/2024/10/4 8:18:32/

文章目录

  • SQLite3 C/C++API介绍
  • SQLite3 C/C++ API 使⽤

SQLite3 C/C++API介绍

C/C++ API是SQLite3数据库的⼀个客⼾端,提供⼀种⽤C/C++操作数据库的⽅法。

在这里插入图片描述

SQLite3 C/C++ API 使⽤

下⾯我们将这⼏个接⼝封装成⼀个类,快速上⼿这⼏个接口

  1. 创建/打开数据库文件
  2. 针对打开的数据库执行操作
    1. 表的操作
    2. 数据的操作
  3. 关闭数据库
#include <iostream>
#include <string>
#include <sqlite3.h>
using namespace std;class SqliteHelper 
{
public:typedef int(*SqliteCallback)(void*,int,char**,char**); //回调函数指针SqliteHelper(const string &dbfile) : _dbfile(dbfile), _handler(nullptr){}bool open(int safe_leve = SQLITE_OPEN_FULLMUTEX) //串行化模式{//int sqlite3_open_v2(const char *filename, sqlite3 **ppDb, int flags, const char *zVfs );int ret = sqlite3_open_v2(_dbfile.c_str(), &_handler, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | safe_leve, nullptr);if (ret != SQLITE_OK) {cout << "创建/打开sqlite数据库失败: ";cout << sqlite3_errmsg(_handler) << endl;return false;}return true;}bool exec(const string &sql, SqliteCallback cb, void *arg) //arg是cb回调函数的参数{//int sqlite3_exec(sqlite3*, char *sql, int (*callback)(void*,int,char**,char**), void* arg, char **err)int ret = sqlite3_exec(_handler, sql.c_str(), cb, arg, nullptr);if (ret != SQLITE_OK) {cout << sql << endl;cout << "执行语句失败: ";cout << sqlite3_errmsg(_handler) << endl;return false;}return true;}void close() {//int sqlite3_close_v2(sqlite3*);if (_handler) sqlite3_close_v2(_handler);}
private:string _dbfile;sqlite3 *_handler;
};

http://www.ppmy.cn/embedded/121258.html

相关文章

Angular面试题十

一、Angular中的AOT&#xff08;Ahead-of-Time&#xff09;编译是什么&#xff1f;与JIT&#xff08;Just-In-Time&#xff09;编译相比&#xff0c;它有哪些优势&#xff1f; Angular中的AOT&#xff08;Ahead-of-Time&#xff09;编译是一种在构建时将Angular应用程序的组件模…

html5 + css3(上)

目录 HTML认知web标准vscode的简介和使用注释标题和段落换行和水平线标签文本格式化标签图片图片-基本使用图片-属性 绝对路径相对路径音频标签视频标签超链接 HTML基础列表列表-无序和有序列表-自定义 表格表格-使用表格-表格标题和表头单元格表格-结构标签&#xff08;了解&a…

在Ubuntu 20.04中安装CARLA

0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器&#xff0c;其支持自动驾驶系统全管线的开发、训练和验证&#xff08;Development, Training, and Validation of autonomous driving systems&#xff09;。Carla提供了丰富的数字资产&#xff0c;例如城市布局…

OpenSource - 开源WAF_SamWaf

文章目录 PreSafeLine VS SamWaf开发初衷软件介绍架构界面主要功能 使用说明下载最新版本快速启动WindowsLinuxDocker 启动访问升级指南自动升级手动升级 在线文档 代码相关代码托管介绍和编译已测试支持的平台测试效果 安全策略问题反馈许可证书贡献代码 Pre Nginx - 集成Mod…

在VSCode中配置C/C++开发环境

Visual Studio Code&#xff08;简称VSCode&#xff09;是一款轻量级但功能强大的代码编辑器&#xff0c;支持几乎所有主流编程语言。对于C/C开发者来说&#xff0c;VSCode通过扩展插件&#xff08;如Microsoft的C/C扩展&#xff09;可以构建出一个高效、便捷的开发环境。本文将…

PHP泛目录生成源码,可生成长尾关键词页面,带使用方法视频教程

介绍&#xff1a; 真正的好东西&#xff0c;搞网站优化seo从业必备。可以快速提升网站权重&#xff0c;带来的流量哗哗的 PHP泛目录生成源码 可生成新闻页面和关键词页面 带使用方法视频教程 泛目录可以用来提升网站收录和排名 合理运用目录可以达到快速出词和出权重的效果…

使用 Docker 制作 YashanDB 镜像:深度解析与实战指南

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互…

开源软件简介

一、开源运动的发起 近几十年&#xff0c;软件已经称为战略性的社会资源。各大软件供应商传统的对外封锁源代码的运营模式虽说有积极的一面&#xff0c;比如可以维护开发商的利益&#xff0c;使其可以持续地维护进一步开发的能力&#xff0c;以及可以保护软件商及客户的私密信息…