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

Windows下C++使用SQLite

1、安装

  进入SQLite Download Page页面,下载sqlite-dll-win-x86-*.zip、sqlite-amalgamation-*.zip、sqlite-tools-win-x64-*.zip三个包,这三个包里分别包含dll文件和def文件、头文件、exe工具。

  使用vs命令行工具生成.lib文件:进入dll和def文件所在的目录,执行lib /DEF:sqlite3.def /OUT:sqlite3.lib /MACHINE:x86后获得.lib文件,这样就可以通过dll文件、lib文件、头文件来开发SQLite了。

  exe工具可以进行SQLite操作,比如下面为创建数据库和表(输入.quit结束命令,SQL语句以分号结尾):

2、代码示例

#include <iostream>
#include "sqlite3.h"//SQL语句查询结果回调,比如对于select来说,查询到的每一条数据都会执行callback方法一次
static int callback(void* data/*sqlite3_exec()的第四个参数*/, int argc/*结果的列个数*/, char** argv/*结果字段值*/, char** azColName/*结果列名*/) {for (int i = 0; i < argc; i++) {printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");}printf("\n");return 0;
}int main()
{sqlite3* pDB = nullptr;char* zErrMsg = nullptr;const char* sql = nullptr;const char* data = "Callback function called";//打开数据库,不存在则创建int nRes = sqlite3_open("D:\\sqlite\\test.db", &pDB);if (nRes) {fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(pDB));exit(0);}//创建表,已存在则创建失败sql = "create table company("\"id integer primary key autoincrement,"\"name text not null,"\"age integer not null);";nRes = sqlite3_exec(pDB, sql, 0, 0, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}//插入数据sql = "insert into company (id,name,age) values(1, 'Paul', 32); " \"insert into company (id,name,age) values (2, 'Allen', 25); " \"insert into company (id,name,age) values (3, 'Teddy', 23);";nRes = sqlite3_exec(pDB, sql, 0, 0, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}//查询数据sql = "select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}printf("==============================================\r\n");//修改数据sql = "update company set age = 25 where id=1; select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}printf("==============================================\r\n");//删除数据sql = "delete from company where id=3; select * from company";nRes = sqlite3_exec(pDB, sql, callback, (void*)data, &zErrMsg);if (nRes != SQLITE_OK) {fprintf(stderr, "SQL error: %s\n", zErrMsg);sqlite3_free(zErrMsg);}sqlite3_close(pDB);
}

  

相关文章:

Windows下C++使用SQLite

1、安装 进入SQLite Download Page页面&#xff0c;下载sqlite-dll-win-x86-*.zip、sqlite-amalgamation-*.zip、sqlite-tools-win-x64-*.zip三个包&#xff0c;这三个包里分别包含dll文件和def文件、头文件、exe工具。 使用vs命令行工具生成.lib文件&#xff1a;进入dll和def文…...

依图科技简介

依图科技&#xff08;YITU Technology&#xff09;是中国一家全球领先的人工智能&#xff08;AI&#xff09;公司&#xff0c;成立于2012年&#xff0c;总部位于上海。公司专注于计算机视觉、语音识别和自然语言处理等核心AI技术&#xff0c;致力于推动AI技术在医疗、安防、金融…...

BiLSTM模型详解及代码复现(源码)

(需要源码请私信或留言) LSTM基础 LSTM (Long Short-Term Memory) 是一种特殊类型的循环神经网络(RNN),旨在解决传统RNN在处理长序列时面临的梯度消失和梯度爆炸问题。其核心创新在于引入了 门控机制 ,包括遗忘门、输入门和输出门,有效控制信息的流动和存储。这种独特的…...

HTMLCSS:超炫丝滑的卡片水波纹效果

这段代码创建了一个卡片&#xff0c;卡片上有三个波动效果&#xff0c;这些波动效果通过 CSS 的keyframes 动画实现&#xff0c;创建了一个旋转的动画效果。这种效果适用于创建动态的视觉效果&#xff0c;例如音乐播放器的封面、动态背景或其他需要动态效果的界面元素。 演示效…...

8086汇编(16位汇编)学习笔记05.asm基础语法和串操作

8086汇编(16位汇编)学习笔记05.asm基础语法和串操作-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net asm基础语法 1. 环境配置 xp环境配置 1.拷贝masm615到指定目录 2.将masm615目录添加进环境变量 3.在cmd中输入ml&#xff0c;可以识别即配置成功 dosbox…...

【漏洞复现】BIG-IP Next Central Manager OData 注入漏洞(CVE-2024-21793)

免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作…...

Go语言及MongoDB数据库安装配置详解!

Go语言安装 首先讲一下go语言的安装&#xff0c;这部分可直接从官网下载&#xff0c;基本上一键配置的&#xff1a; 官网地址&#xff1a;All releases - The Go Programming Language 选择自己对应系统的安装包&#xff0c;这里官网提供了5种不同的包可自行下载 之后便是默认…...

数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)

数据库管理275期 2024-12-25 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09;1 系统管理分片2 用户定义分片总结 数据库管理-第275期 Oracle 23ai&#xff1a;画了两张架构图&#xff08;20241225&#xff09; 作者&#xff1a;胖…...

HTML速查

HTML 基本文档 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>文档标题</title></head><body>可见文本...</body> </html>基本标签&#xff08;Basic Tags&#xff09; <h1>最大的…...

系统分析师第二版口诀

【绪 数 计 网 库】、【信 工 项 安 规 】、【需 架 设 测 运】、【We 嵌 移 大 微 物 论】&#xff08;第1章 绪论、第2章 数学与工程基础、第3章 计算机系统、第4章 计算机网络与分布式系统、第5章 数据库系统、第6章 企业信息化、第7章 软件工程、第8章 项目管理、第9章 信息…...

E-commerce .net+React(一)——项目初始化

文章目录 项目地址一、创建.Net环境1.1环境配置1.1.1 使用vscode创建webapi1.1.2 Clean architecture结构创建1.1.3 将创建好结构的项目添加到git里1.1.4 EF Core配置1. 在infrastructure里安装EF所需环境2. 创建Product数据模型3. 创建EF Core的DbContext 数据库上下文4. 创建…...

15 break和continue

while True: content input("请输入你要喷的内容") print("发送给下路",content) #上述的程序如果没有外力干扰&#xff1a;程序会一直进行输入下去 #break:就能让当前这个循环立即进行停止 while True: content input("请输入…...

SwiftUI 入门趣谈:在文本框(TextField)内限制数字的输入

概述 虽然 SwiftUI 本身提供了海量内置的原生视图供我们使用&#xff0c;但对于某些情况我们还需要根据实际需求“量体裁衣、专属定制”。 在日常的撸码场景中&#xff0c;我们有时需要限制文本框&#xff08;TextField&#xff09;中数字内容的输入&#xff0c;如何又简单又快…...

JOGL 从入门到精通:开启 Java 3D 图形编程之旅

一、引言 Java 作为一门广泛应用的编程语言&#xff0c;在图形编程领域也有着强大的工具和库。JOGL&#xff08;Java OpenGL&#xff09;便是其中之一&#xff0c;它为 Java 开发者提供了访问 OpenGL&#xff08;Open Graphics Library&#xff09;功能的接口&#xff0c;使得…...

scrollIntoView() 滚动到元素顶部和底部

scrollIntoView() 是一个 DOM 方法&#xff0c;通常用于将某个元素滚动到视口内&#xff08;可视区域&#xff09;。这个方法能够使目标元素在页面上可见&#xff0c;尤其是在有滚动条的容器中。当你调用 scrollIntoView() 时&#xff0c;浏览器会自动滚动页面&#xff0c;直到…...

数据预处理

数据预处理科普指南 一、数据预处理&#xff1a;开启数据价值之门的钥匙 在当今数字化浪潮中&#xff0c;数据被视作蕴含无尽宝藏的富矿。然而&#xff0c;原始数据就如同刚从矿山采出的原石&#xff0c;虽内藏珍贵信息&#xff0c;却混杂着诸多瑕疵&#xff0c;如噪声、缺失…...

关于分布式数据库需要了解的相关知识!!!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于关于分布式数据库方面的相关内容&a…...

IP代理测试要测试哪些方面?

在数据采集的征途上&#xff0c;IP代理是我们的得力助手&#xff0c;它不仅帮助我们高效地收集信息&#xff0c;还能在保护数据安全方面发挥重要作用。但面对众多的IP代理服务&#xff0c;如何知道哪一个才是最适合我们的呢&#xff1f;这就需要我们进行一系列的测试。 速度与…...

【前沿 热点 顶会】AAAI 2025中与目标检测有关的论文

CP-DETR: Concept Prompt Guide DETR Toward Stronger Universal Object Detection&#xff08;AAAI 2025&#xff09; 最近关于通用物体检测的研究旨在将语言引入最先进的闭集检测器&#xff0c;然后通过构建大规模&#xff08;文本区域&#xff09;数据集进行训练&#xff0…...

【Unity3D】Jobs、Burst并行计算裁剪Texture3D物体

版本&#xff1a;Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码&#xff0c;生成一个Texture3D资源&#xff0c;它只能脚本生成&#xff0c;是一个32*32*32的立方体&#xff0c;导出路径记得改下&#xff0c;不然报错。 using UnityEditor; using Uni…...

HTML与数据抓取:GET与POST​请求处理流程

请求数据最重要的三个要点 1. 请求URL 请求URL是客户端向服务器发出请求的目标地址。它指定了要访问的资源位置&#xff0c;并且可以包含路径和查询参数。URL不仅决定了请求的目标&#xff0c;还可以传递必要的信息给服务器&#xff1b; 格式&#xff1a;http(s)://域名/路径…...

TCP客户端模拟链接websocket服务端发送消息(二)

兄弟们&#xff0c;我来填坑了&#xff0c;o(╥﹏╥)o o(╥﹏╥)o o(╥﹏╥)o o(╥﹏╥)o o(╥﹏╥)o o(╥﹏╥)o&#xff0c;前几天写了个tcp模拟websocket客户端的以为完成&#xff0c;后面需要发送消息给服务端&#xff0c;以为简单不就是一个发送消息么&#xff0c;这不是一…...

使用Quick 录屏为视频生成二维码

Quick 可以将 录屏视频、截图、录音等生成二维码或链接分享给任何人&#xff0c;通过设置访问权限&#xff0c;仅对允许的访客开放。 首先下载安装Quick客户端&#xff0c;安装完成后打开界面如下 点击 选区录制 &#xff0c;按住鼠标左键拖动选区待录制区域 释放鼠标左键&…...

harmony数据保存-数据持久化

preference的介绍 preference的使用 数据库 sqlite的使用 可以写sql语句用executsql进行增删改查. 也可以使用提供的接口&#xff08;insert&#xff0c;delete&#xff0c;update&#xff0c;query&#xff09;进行增删改查。...

【Spring AI】Spring AI Alibaba的简单使用

提示&#xff1a;文章最后有详细的参考文档。 前提条件 SpringBoot版本为3.x以上JDK为17以上申请api-key&#xff0c;地址&#xff1a;百炼平台 引入依赖 说明&#xff1a;我的springboot版本为3.2.4&#xff0c;spring-ai-alibaba-starter版本为1.0.0-M2.1(对应spring-ai版本…...

redhawk如何看高toggle rate instance

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 redhaw...

C语言学习笔记(2)

在学习前&#xff0c;需要有一定的C语言基础。不必很深入&#xff0c;只需要知道函数&#xff0c;头文件&#xff0c;指针&#xff0c;数组等的概念就可以&#xff0c;但并非0基础笔记。 由于写到后面&#xff0c;不好编辑了&#xff0c;决定分成多篇写&#xff0c;请按编号学…...

macos 隐藏、加密磁盘、文件

磁盘加密 打开磁盘工具 点击添加 设置加密参数 设置密码 查看文件 不用的时候右键卸载即可使用的时候装载磁盘&#xff0c;并输入密码即可 修改密码 解密 加密&#xff0c;输入密码即可 禁止开机自动挂载此加密磁盘 如果不禁止自动挂载磁盘&#xff0c;开机后会弹出输入…...

机器学习(二)-简单线性回归

文章目录 1. 简单线性回归理论2. python通过简单线性回归预测房价2.1 预测数据2.2导入标准库2.3 导入数据2.4 划分数据集2.5 导入线性回归模块2.6 对测试集进行预测2.7 计算均方误差 J2.8 计算参数 w0、w12.9 可视化训练集拟合结果2.10 可视化测试集拟合结果2.11 保存模型2.12 …...

TP5 动态渲染多个Layui表格并批量打印所有表格

记录&#xff1a; TP5 动态渲染多个Layui表格每个表格设置有2行表头&#xff0c;并且第一行表头在页面完成后动态渲染显示内容每个表格下面显示统计信息可点击字段排序一次打印页面上的所有表格打印页面上多个table时,让每个table单独一页 后端代码示例&#xff1a; /*** Nod…...

Random模拟概率问题

问题背景&#xff1a; 使用 random.nextInt(100) < 10 这段代码来模拟 10% 的概率&#xff0c;其中&#xff1a; random.nextInt(100) 会生成一个 0 到 99 之间的整数。 如果结果小于 10&#xff0c;则表示触发事件&#xff0c;概率为 10/100 10%。 核心问题&#xff1a;…...

适用于Synology NAS的在线办公套件:ONLYOFFICE安装指南

使用 Synology NAS 上的 ONLYOFFICE 文档&#xff0c;您能在私有云中直接编辑文本文档、电子表格、演示文稿和 PDF&#xff0c;确保工作流程既安全又高效。本指南将分步介绍如何在 Synology 上安装 ONLYOFFICE 文档。 关于 Synology Synology NAS&#xff08;网络附加存储&…...

Go的defer原理

Go 语言中的 defer 语句用于延迟执行一个函数&#xff0c;直到包含该 defer 语句的函数执行完毕时才执行。defer 主要用于资源清理、文件关闭、解锁互斥锁等操作&#xff0c;以确保这些操作在函数返回前被执行&#xff0c;无论函数是正常返回还是由于错误提前返回。 以下是 de…...

达梦数据库迁移到MySQL字段注释缺失问题处理

目录 1、环境信息 2、问题详情 3、处理方案 3.1、提取备用库字段注释 3.2、生成正式库字段注释 1、环境信息 达梦数据库版本&#xff1a;v8 MySQL数据库版本&#xff1a;5.7.11 正式库&#xff1a;通过DTS迁移后的MySQL数据库 备用库&#xff1a;表结构与正式库一致&#…...

IntelliJ Idea常用快捷键详解

文章目录 IntelliJ Idea常用快捷键详解一、引言二、文本编辑与导航1、文本编辑2、代码折叠与展开 三、运行和调试四、代码编辑1、代码补全 五、重构与优化1、重构 六、使用示例代码注释示例代码补全示例 七、总结 IntelliJ Idea常用快捷键详解 一、引言 在Java开发中&#xff…...

Java操作Xml

一、数据准备 1、文件头实体类 package com.xiaobai.xmlpractice;import lombok.AllArgsConstructor; import lombok.Data;/*** Author 王天文* Date 2024/12/18 21:46* Description: xml头*/ AllArgsConstructor Data public class Head {private String desc;private Strin…...

CI/CD是什么?

CI/CD 定义 CI/CD 代表持续集成和持续部署&#xff08;或持续交付&#xff09;。它是一套实践和工具&#xff0c;旨在通过自动化构建、测试和部署来改进软件开发流程&#xff0c;使您能够更快、更可靠地交付代码更改。 持续集成 (CI)&#xff1a;在共享存储库中自动构建、测试…...

某些iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题

一些型号的iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题 延迟问题 navigator.mediaDevices.getUserMedia({ audio: true }) .then((stream) > {console.log(stream) }&#xff09;从开始到获取stream会有将近2s的延迟 导致按下按钮开始录音 会有前…...

基础优化方法

梯度下降 学习率代表每一次沿着这个方向走多远&#xff0c; batchsize的概念 梯度下降通过不断沿着反梯度方向更新参数求解 两个重要的超参数是 batchsize 和 学习率...

linux系统上SQLPLUS的重“大”发现

SQL plus版本&#xff1a; [oraclepg-xc2 ~]$ sqlplus -v SQL*Plus: Release 19.0.0.0.0 - Production Version 19.3.0.0.0 操作系统&#xff1a;CentOS Linux 7 (Core) 数据库&#xff1a;Oracle 19c Version 19.3.0.0.0 同样的SQL脚本在windos CMD sqlplus 执行没问题。…...

【0x001F】HCI_Read_Clock_Offset命令详解

目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Read_Clock_Offset 命令格式 2.2. Connection_Handle 三、生成事件 3.1. HCI_Command_Status 事件 3.2. HCI_Read_Clock_Offset_Complete 事件 四、命令执行流程 4.1. 命令发送阶段 4.2. 命令接收与初步反馈阶段 …...

UML(统一建模语言)及其图例使用指南

UML&#xff08;统一建模语言&#xff09;及其图例使用指南 一、UML 介绍二、UML 图表1. 用例图&#xff08;Use Case Diagram&#xff09;2. 类图&#xff08;Class Diagram&#xff09;3. 对象图&#xff08;Object Diagram&#xff09;4. 序列图&#xff08;Sequence Diagra…...

AI写标书工具:高效智能的标书撰写助手——标小兔

在现代商业竞争中&#xff0c;投标是许多企业获得项目的关键途径。而标书的质量直接影响中标的几率。传统的标书撰写过程繁琐&#xff0c;且容易出错&#xff0c;尤其是涉及到大量的数据整理、文字表达和排版工作&#xff0c;这些任务既费时又容易让人产生疲劳感。为了提升工作…...

计算机考研选西电还是成电?

谢邀~先来个总结&#xff1a;电子科技大学计算机综合实力优于西安电子科技大学&#xff0c;但是&#xff0c;二者计算机学硕考研难度没有太大差距&#xff0c;而且考试难度也同属于一个水平&#xff0c;成电性价比更高一些&#xff01;推荐同学优先报考作为985的电子科技大学&a…...

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之循环结构(for循环语句)(一)

在C编程中&#xff0c;顺序结构和分支结构是两种基本的控制流结构&#xff0c;其中顺序结构是一种最简单、最基本的控制结构&#xff0c;即代码按照从上到下的顺序逐行执行&#xff0c;每个语句按照顺序执行&#xff0c;一条语句执行完再执行下一条语句&#xff0c;依次执行所有…...

【再谈设计模式】享元模式~对象共享的优化妙手

一、引言 在软件开发过程中&#xff0c;我们常常面临着创建大量细粒度对象的情况&#xff0c;这可能会导致内存占用过高、性能下降等问题。享元模式&#xff08;Flyweight Pattern&#xff09;就像是一位空间管理大师&#xff0c;它能够在不影响功能的前提下&#xff0c;有效地…...

NestJS中使用nestjs-plugin-module实现插件系统

1. 安装依赖 npm install brewww/nestjs-plugin-module2. 定义插件接口 首先&#xff0c;我们需要定义一个插件接口&#xff0c;这个接口定义了插件需要实现的方法。 hello/plugin.interface.ts export interface HelloServicePlugin {helloworld(): string;hello(name: st…...

jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针

概述 排查问题的一般思路是:现象 ——> 直接原因 ——>根本原因。 从问题现象出发,可以分为 应用逻辑问题、资源使用问题、虚拟机异常: 应用逻辑可能导致报错增加、死锁、程序退出等;资源问题主要集中在CPU上升和内存上升(OOM Kill);虚拟机问题通常包括GC问题、进…...

Presence:Colyseus用于管理实时分布式数据的工具

Colyseus Presence 详细介绍 Presence 是 Colyseus 中用于管理实时分布式数据的一种工具。它主要用于在多房间、多服务器或分布式部署中实现玩家的实时在线状态、数据共享和通信。Presence 提供了一套简单的 API 来处理诸如在线玩家跟踪、分布式数据存储和发布/订阅模式等功能…...

梳理你的思路(从OOP到架构设计)_认识框架(Framework) 01

目录 1、 是框架的核心要素​编辑&i> 范例1&#xff1a; 范例2&#xff1a; 范例3&#xff1a; 1、 <E&I>是框架的核心要素 在特定领域(Domain)里&#xff0c;将EIT造形的<E&I>部份有意义地组合起来&#xff0c;就成为框架(Framework)了。基本…...