当前位置: 首页 > news >正文

C++之sqlite数据库读写

C++之sqlite数据库读写

    • 常用函数
    • 应用例程

常用函数

1、sqlite3_open()
用于打开SQLite数据库。该函数接受两个参数:数据库文件名和打开模式。成功打开数据库后,将返回一个sqlite3*对象。

2、sqlite3_close()
用于关闭SQLite数据库。该函数接受一个sqlite3*对象作为参数。

3、sqlite3_exec()
该函数用于执行SQL语句。它接受一个sqlite3*数据库,一个SQL语句字符串和一个回调函数。对于每个从SQL语句返回的记录,回调函数都会被调用。

4、sqlite3_prepare()
该函数用于准备要执行的SQL语句。该函数接受一个sqlite3*数据库,一个SQL语句字符串和一个回调函数。当SQL语句准备好执行时,回调函数会被调用。

5、sqlite3_step()
该函数用于执行已准备好的SQL语句。该函数接受一个sqlite3*数据库和一个已准备好的SQL语句。对于每个从SQL语句返回的记录,回调函数都会被调用。

6、sqlite3_finalize()
该函数用于销毁已准备好的SQL语句。该函数接受一个sqlite3*数据库和一个已准备好的SQL语句。

7、sqlite3_last_insert_rowid()
该函数返回最近一次成功的INSERT语句插入的行的ROWID。该函数接受一个sqlite3*数据库作为参数。

8、sqlite3_changes()
该函数返回自上次事务以来,被数据库中的UPDATE、INSERT和DELETE语句更改的行数。该函数接受一个sqlite3*数据库作为参数。

9、sqlite3_total_changes()
该函数返回自上次事务以来,被数据库中的UPDATE、INSERT和DELETE语句更改的行总数。该函数接受一个sqlite3*数据库作为参数。

10、sqlite3_interrupt()
该函数用于中止正在执行的SQLite操作。该函数接受一个sqlite3*数据库作为参数。

应用例程

#include <stdio.h>  
#include <stdlib.h>  
#include <sqlite3.h>  static int callback(void* NotUsed, int argc, char** argv, char** azColName) {  for(int i = 0; i < argc; i++) {  printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");  }  return 0;  
}  int main(int argc, char* argv[]) {  sqlite3* db;  char* zErrMsg = 0;  int rc;  rc = sqlite3_open("test.db", &db);  if(rc) {  fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));  exit(0);  } else {  fprintf(stderr, "Opened database successfully\n");  }  char* sql = "CREATE TABLE Friends(Id INT, Name TEXT);";  rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);  if(rc != SQLITE_OK) {  fprintf(stderr, "SQL error: %s\n", zErrMsg);  sqlite3_free(zErrMsg);  } else {  fprintf(stderr, "Table created successfully\n");  }  sql = "INSERT INTO Friends(Id, Name) VALUES(1, 'Tom');";  rc = sqlite3_exec(db, sql, 0, 0, &zErrMsg);  if(rc != SQLITE_OK) {  fprintf(stderr, "SQL error: %s\n", zErrMsg);  sqlite3_free(zErrMsg);  } else {  fprintf(stderr, "Records inserted successfully\n");  }  sql = "SELECT * FROM Friends;";  rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);  if(rc != SQLITE_OK) {  fprintf(stderr, "SQL error: %s\n", zErrMsg);  sqlite3_free(zErrMsg);        } else {  fprintf(stderr, "Select operation performed successfully\n");  }  sqlite3_close(db);  return 0;  
}

这个例程演示了如何使用SQLite数据库的C API来执行以下操作:

打开一个SQLite数据库(如果数据库不存在,则创建一个新数据库)。
创建一个表格。
向表格中插入记录。
查询表格中的记录,并在控制台上显示每条记录的每个字段的值。
关闭数据库连接。

相关文章:

C++之sqlite数据库读写

C之sqlite数据库读写 常用函数应用例程 常用函数 1、sqlite3_open() 用于打开SQLite数据库。该函数接受两个参数&#xff1a;数据库文件名和打开模式。成功打开数据库后&#xff0c;将返回一个sqlite3*对象。 2、sqlite3_close() 用于关闭SQLite数据库。该函数接受一个sqlite…...

大模型应用疯狂加速,洗牌却在静悄悄进行了

配图来自Canva可画 在被誉为“科技企业营销圣经”的《跨越鸿沟》一书中&#xff0c;杰弗里摩尔写道&#xff1a;“高科技产品面世过程中&#xff0c;最危险、最关键的一点&#xff0c;就是由少数有远见者所主宰的早期市场&#xff0c;向实用主义者占支配地位的主流市场过渡。”…...

oracle后台进程详解#进程结构

一、oracle进程结构 oracle体系结构主要有实例数据库&#xff1b; 实例由内存结构&#xff08;SGAPGA..&#xff09;和进程结构&#xff08;服务器进程后台进程..&#xff09;组成&#xff1b;本文主要介绍进程结构 二、服务器进程 Oracle数据库创建服务器进程来处理连接到该实…...

解决DDP的参数未参与梯度计算

将find_unused_parameters改成False之后&#xff0c;如果出现模型有些参数未参与loss计算等错误。 可以用环境变量来debug查看log。 export TORCH_DISTRIBUTED_DEBUGDETAIL 代码上可以用以下方法查看。 # check parameters with no grad for n, p in model.named_parameters(…...

cpp primer笔记100-拷贝控制

如果拷贝构造函数如果传递的参数不是引用类型&#xff0c;则调用拷贝永远不成功&#xff0c;因为如果调用了拷贝构造函数&#xff0c;则必须拷贝它的实参&#xff0c;但是为了拷贝实参&#xff0c;我们又需要调用拷贝构造函数&#xff0c;如此循环。 如果想要删除默认构造函数…...

【数据库——MySQL】(16)游标和触发器习题及讲解

目录 1. 题目1.1 游标1.2 触发器 2. 解答2.1 游标2.2 触发器 1. 题目 1.1 游标 创建存储过程&#xff0c;利用游标依次显示某部门的所有员工的实际收入。(分别用使用 计数器 来循环和使用 标志变量 来控制循环两种方法实现) 创建存储过程&#xff0c;将某部门的员工工资按工作…...

javascript二维数组(9)toString的用法

在JavaScript中&#xff0c;toString() 是一个内置方法&#xff0c;用于将特定的对象转化为字符串表示形式。 基本使用示例 以下是一些 toString() 方法的基本使用示例&#xff1a; 数字的 toString()&#xff1a; let num 123; console.log(num.toString()); // 输出: &…...

OpenAI重大更新!为ChatGPT推出语音和图像交互功能

原创 | 文 BFT机器人 OpenAI旗下的ChatGPT正在迎来一次重大更新&#xff0c;这个聊天机器人现在能够与用户进行语音对话&#xff0c;并且可以通过图像进行交互&#xff0c;将其功能推向与苹果的Siri等受欢迎的人工智能助手更接近的水平。这标志着生成式人工智能运动的一个显著…...

【开发篇】十六、SpringBoot整合JavaMail实现发邮件

文章目录 0、相关协议1、SpringBoot整合JavaMail2、发送简单邮件3、发送复杂邮件 0、相关协议 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;&#xff1a;简单邮件传输协议&#xff0c;用于发送电子邮件的传输协议POP3&#xff08;Post Office Protocol - Versi…...

如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…...

Flutter笔记:用于ORM的Floor框架简记

Flutter笔记 用于ORM的Floor框架简记 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/133377191 floor 模块地址&#xff1a;https://pub.dev/packages/floor 【介绍】&#xff1a;最近想找用于Dart和Flutter的ORM框架&#xff0c;偶然间发现了Floor…...

Zabbix自定义脚本监控MySQL数据库

一、MySQL数据库配置 1.1 创建Mysql数据库用户 [rootmysql ~]# mysql -uroot -p create user zabbix127.0.0.1 identified by 123456; flush privileges; 1.2 添加用户密码到mysql client的配置文件中 [rootmysql ~]# vim /etc/my.cnf.d/client.cnf [client] host127.0.0.1 u…...

【Spatial-Temporal Action Localization(五)】论文阅读2020年

文章目录 1. Actions as Moving Points摘要和结论引言&#xff1a;针对痛点和贡献模型框架实验 1. Actions as Moving Points Actions as Moving Points (ECCV 2020) 摘要和结论 MovingCenter Detector (MOCdetector) 通过将动作实例视为移动点的轨迹。通过三个分支生成 tub…...

Linux基本指令(中)——“Linux”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容是Linux基本指令呀&#xff01;&#xff01;&#xff01;下面&#xff0c;让我们进入Linux的世界吧&#xff01;&#xff01;&#xff01; cp指令&#xff08;重要&#xff09; mv指令&#xff08;重要&#xff09…...

OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击

作者&#xff1a;gentle_zhou 原文链接&#xff1a;OWASP Top 10漏洞解析&#xff08;3&#xff09;- A3:Injection 注入攻击-云社区-华为云 Web应用程序安全一直是一个重要的话题&#xff0c;它不但关系到网络用户的隐私&#xff0c;财产&#xff0c;而且关系着用户对程序的新…...

Java自定义类加载器的详解与步骤

自定义类加载器的步骤 继承ClassLoader类&#xff1a;首先创建一个新的类&#xff0c;该类需要继承ClassLoader类。可以通过直接继承ClassLoader或是间接继承URLClassLoader等子类来实现。重写findClass()方法&#xff1a;在自定义类加载器中&#xff0c;最重要的是重写findCl…...

完美清晰,炫酷畅享——Perfectly Clear Video为你带来卓越的AI视频增强体验

在我们日常生活中&#xff0c;我们经常会拍摄和观看各种视频内容&#xff0c;无论是旅行记录、家庭聚会还是商务演示&#xff0c;我们都希望能够呈现出最清晰、最精彩的画面效果。而现在&#xff0c;有一个强大的工具可以帮助我们实现这一目标&#xff0c;那就是Perfectly Clea…...

如何让FileBeat支持http的output插件

目录 1 缘由2 编译filebeat3 配置虚拟机访问外网4 编译beats-output-http4.1 使用本地包4.2 发布在线包 5 测试6 beats-output-http的部分解释 1 缘由 官网的filebeat只有以下几种output插件&#xff1a; Elasticsearch ServiceElasticsearchLogstashKafkaRedisFileConsole …...

解密人工智能:决策树 | 随机森林 | 朴素贝叶斯

文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、决策树2.1 优点2.2 缺点 三、随机森林四、Naive Bayes&#xff08;朴素贝叶斯&#xff09;五、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法&#xff0c;通过对…...

web:[极客大挑战 2019]BabySQL

题目 点进页面显示如下 查看源代码 先尝试一下万能密码 没用&#xff0c;or被过滤了 试着双写看看 回显一串&#xff0c;也不是flag 先查询列数尝试一下&#xff0c;把union select过滤了&#xff0c;使用双写 构造payload /check.php?usernameadmin&password1 %27 ununi…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?

无论是建筑施工、软件开发&#xff0c;还是市场营销活动&#xff0c;项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素&#xff0c;项目很容易陷入混乱&#xff0c;导致进度延误、成本超支&#xff0c;甚至失败。 项目进度管理软…...

中国政务数据安全建设细化及市场需求分析

(基于新《政务数据共享条例》及相关法规) 一、引言 近年来,中国政府高度重视数字政府建设和数据要素市场化配置改革。《政务数据共享条例》(以下简称“《共享条例》”)的发布,与《中华人民共和国数据安全法》(以下简称“《数据安全法》”)、《中华人民共和国个人信息…...