SQLite3使用接口写入二进制文件
使用接口的方式写入二进制文件 ,有二种方案。
一、全部文件 一次性写下到数据中 使用sqlite3_bind_blob接口
FILE* fp=fopen("user.bmp","rb");
iLen=fread(buffer,1,65535,fp);
fclose(fp);sqlite3_prepare(pDB,"insert into user values ('1001',?);",-1,&stmt,NULL);
sqlite3_bind_blob(stmt,1,buffer,iLen,NULL);
sqlite3_step(stmt);
二、使用blob接口函数,增量写入数据
int sqlite3_blob_open(sqlite3*,const char *zDb,const char *zTable,const char *zColumn,sqlite3_int64 iRow,int flags,sqlite3_blob **ppBlob
);
该接口打开位于数据库 zDb 中行 iRow、列 zColumn、表 zTable 中的 BLOB的句柄;换句话说,相同的 BLOB 将由以下人员选择:
SELECT zColumn FROM zDb.zTable WHERE rowid = iRow;
参数 zDb 不是包含数据库的文件名,而是数据库的符号名称。对于附加数据库,这是出现在ATTACH语句中 AS 关键字之后的名称。对于主数据库文件,数据库名称是“main”。对于 TEMP 表,数据库名称是“temp”。
将数据增量写入 BLOB
int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset);
该函数用于将数据从调用者提供的缓冲区写入打开的 BLOB handle 。N 个字节的数据从缓冲区 Z 复制到打开的 BLOB,从偏移量 iOffset 开始。
成功时,sqlite3_blob_write() 返回 SQLITE_OK。否则,将返回 error code 或 extended error code 。除非返回 SQLITE_MISUSE,否则此函数将设置可通过 sqlite3_errcode() 和 sqlite3_errmsg() 及相关函数访问的 database connection 错误代码和消息。
如果作为第一个参数传递的 BLOB handle 未打开进行写入( sqlite3_blob_open() 的 flags 参数为零),则此函数返回 SQLITE_READONLY 。
该函数只能修改BLOB的内容;使用此 API 无法增加 BLOB 的大小。如果偏移 iOffset 距离 BLOB 末尾小于 N 个字节,则返回 SQLITE_ERROR 并且不写入任何数据。BLOB 的大小(以及 N+iOffset 的最大值)可以使用 sqlite3_blob_bytes() 接口确定。如果 N 或 iOffset 小于零,则返回 SQLITE_ERROR 并且不写入任何数据。
尝试写入过期的 BLOB handle 失败,错误代码为 SQLITE_ABORT 。在 BLOB handle 过期之前发生的对 BLOB 的写入不会因句柄过期而回滚,尽管这些更改当然可能已被使 BLOB 句柄过期的语句或其他独立语句覆盖。
此例程仅适用于由先前成功调用 sqlite3_blob_open() 创建且尚未被 sqlite3_blob_close() 关闭的 BLOB handle 。将任何其他指针传递给此例程都会导致未定义的且可能是不良行为。
另请参阅: sqlite3_blob_read() 。
在这里写个笔记,这几天要用到sqlite相关的函数 。
相关文章:
SQLite3使用接口写入二进制文件
使用接口的方式写入二进制文件 ,有二种方案。 一、全部文件 一次性写下到数据中 使用sqlite3_bind_blob接口 FILE* fpfopen("user.bmp","rb"); iLenfread(buffer,1,65535,fp); fclose(fp);sqlite3_prepare(pDB,"insert into user values …...
在复杂的数据库架构中,如何优化 SQL 查询以提高性能和减少资源消耗?
在优化 SQL 查询以提高性能和减少资源消耗时,可以考虑以下几个方面: 使用索引:为经常被查询的列创建索引,可以大大加快查询速度。同时,避免过多的索引,因为过多的索引会增加写入操作的开销。 编写高效的查…...
【HarmonyOS】端云一体化初始化项目
简介 端云一体化开发是HarmonyOS对云端开发的支持、实现端云联动。云开发服务提供了云函数、云数据库、云存储等服务,可以使开发者专注于应用的业务逻辑开发,无需关注基础设施,例如:服务器、操作系统等问题。 因此,…...
LLM之KG:利用大语言模型(LLM)对文本语料提取概念和概念之间的语义关系进而实现自动构建知识图谱
LLM之KG:利用大语言模型(LLM)对文本语料提取概念和概念之间的语义关系进而实现自动构建知识图谱 目录 ML之KG:基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx+基于路径相似度的方法)实现对用户进行Top电影推荐案例 LLMs之AutoKG:《大型语言模型在知识图…...
Spring Security 6如何使用?
Spring Security 6 是一个功能强大且高度可定制的身份验证和访问控制框架,它专注于为基于Java的应用程序提供全面的安全解决方案。以下是对Spring Security 6的详细解析: 一、核心功能 身份验证(Authentication): 验…...
PyTorch深度学习快速入门教程--学习笔记
目录 P4 PyCharm和Jupyter的对比 P5 PyTorch加载数据 P6 Dataset类代码实现 P7 Tensorboard 写日志 读取日志文件 Tensorboard 读图片 P10 Transforms使用 Transforms用途 常见的Transforms工具 P14 torchvision数据集使用 P15 Dataloader使用 P16 nn.Module模块使…...
SQLALchemy 分组过滤、子查询
SQLALchemy 分组过滤、子查询 分组和过滤(Group By Having)示例:使用ORM示例:使用SQLAlchemy Core子查询(Subquery)SQLAlchemy 是一个流行的 SQL 工具包和对象关系映射(ORM)库,用于 Python 应用程序。它允许你以 Pythonic 的方式使用 SQL 数据库,同时提供了强大的查询…...
华为od(D卷) 环中最长子串/字符成环找偶数LOX
文章目录 题目描述输入描述输出描述示例1示例2示例3思路代码 题目描述 给你一个字符串 s,字符串 s 首尾相连成一个环形,请你在环中找出 ‘l’、‘o’、‘x’ 字符都恰好出现了偶数次最长子字符串的长度。 输入描述 输入是一串小写的字母组成的字符串 …...
机器学习--常见算法总结
有监督学习算法 1. 线性回归算法 概念:线性回归是一种统计方法,用于预测一个变量(因变量)与一个或多个自变量(特征变量)之间的关系。目标是通过线性方程建立自变量和因变量之间的关系模型。 作用&#x…...
QT 网络聊天室简易版
视频:qt开发网络聊天w室软件3.4界面开发_哔哩哔哩_bilibili 目录 UI部分 设计稿图 放置控件 界面美化 拖动窗体 设置界面 网络部分 配置对话框 多项目结果和服务器端设计 客户端框架开发 UI部分 设计稿图 放置控件 界面美化 现在我们把窗体自带的标题栏给去了,用我们自…...
Linux_Shell三剑客grep,awk,sed-08
三剑客的概述: awk、grep、sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找…...
uniapp实现足球数据分析平台移动端H5
文章目录 前言一直想做一款足球分析平台,大概内容包括竞彩分析模块,即时预测模块,初盘分析模块,找来找去还是前端铺子的样式感觉比较好看。 一、界面一栏二、注册界面1.代码说明 三、首页界面四、竞彩预测五、即时预测总结 前言 …...
Redis5优化-Redis
1、Redis关键参数 a、客户端最大连接数 maxclients 60000 注意该参数受到操作系统最大文件句柄的限制(ulimit -n) b、响应 repl-ping-slave-period/repl-timeout repl-timeout 60 1)、说明:slave 会每隔 repl-ping-slave-period(默认10秒)ping一次mast…...
Element UI【详解】el-scrollbar 滚动条组件
el-scrollbar 滚动条组件用于优化页内滚动条的UI效果,使用时必须指定高度! /*el-scrollbar 必须指定高度*/ .scrollMenuBox {height: 200px;width: 100px;border: 1px solid red; } 控制el-scrollbar内滚动条的方法与控制页面的滚动条的方法基本一样&a…...
【精选】基于Python大型购物商城系统(京东购物商城,淘宝购物商城,拼多多购物商城爬虫系统)
目录: 目录: 系统介绍: 系统开发技术 Python语言 Django框架简介 MySQL数据库技术 B/S架构 系统设计 系统总体设计 系统详细界面实现: 系统测试 测试目的 测试用例 本章小结 参考代码: 为什么选择我&…...
QT翻金币小游戏(含音频图片文件资源)
目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…...
Linux配置JDK8环境变量
目录 一、yum安装1.1 OpenJDK安装1.2 测试是否能够使用1.3 如何卸载JDK 二、手动安装2.1 下载2.2 上传到linux服务器路径2.3 解压2.4 配置环境变量2.5 测试是否能够使用 一、yum安装 1.1 OpenJDK安装 sudo yum install -y java-1.8.0-openjdk-devel1.2 测试是否能够使用 jav…...
Fiddle抓手机app的包
前言 本次文章讲述的是,fiddle获取手机代理,从而获取手机app的http、https请求! 一.下载安装汉化Fiddle 1.点击Fiddler官网下载链接:Download Fiddler Web Debugging Tool for Free by Telerik 2.直接运行,选择自己需…...
Oracle+ASM+High冗余详解及空间计算
Oracle ASM(Automatic Storage Management)的High冗余模式是一种提供高度数据保护的策略,它通过创建多个数据副本来确保数据的可用性和安全性。 以下是关于Oracle ASM High冗余的详细解释: 一、High冗余的特点 1.数据冗余度 在Hi…...
如何为 Nextcloud 配置自动数据库备份 - 应用程序
自动数据库备份模块简化了生成数据库计划备份的过程。这些备份可以存储在各种位置,包括本地驱动器、FTP 服务器、SFTP 服务器、Dropbox、Google Drive、OneDrive、NextCloud 和 Amazon S3 云存储。用户还可以选择启用自动删除过期备份的功能。此外,用户可…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
【技巧】dify前端源代码修改第一弹-增加tab页
回到目录 【技巧】dify前端源代码修改第一弹-增加tab页 尝试修改dify的前端源代码,在知识库增加一个tab页"HELLO WORLD",完成后的效果如下 [gif01] 1. 前端代码进入调试模式 参考 【部署】win10的wsl环境下启动dify的web前端服务 启动调试…...
