Qt Oracle往数据库里插入或者更新图片

前言

最近遇到需要将图片从本地上传,上传后先显示到QLabel上,确认提交时,写入到Oracle中

读取本地图片文件

首先,需要将本地的文件读出来。

QPixmap pixmap(":/images/images/1.png");

QPixmap 转 QByteArray

我的设计方案是,我有一个label用来显示图片,所以我就需要从这个label的pixmap来转成QByteArray;

QByteArray byte;
QBuffer buffer(&byte); ui->label->pixmap()->save(&buffer, "png", 0);

这样,label里的图片内容就保存到byte里了

组成SQL,并执行

我们在使用Qt进行数据库操作时,我们首先需要进行一个SQL语句的组合;
比如:

QString command = QString("UPDATE TABLE SET PICTURE = '%1'")
.arg(QString(byte));
QSqlQuery query;
if (!query.exec(command)) {
qDebug() << QString("exec error, command is :%1, error reason is :%2")
.arg(command)
.arg(query.lastError().text());
}

但是这里就有一个问题,在你将QByteArray转成QString的时候,由于遇到’0’的话,会截断,所以转出来的图片数据是不全的,所以这里需要用到QSqlQuery里的bindValue()这个函数。

QString command = "UPDATE TABLE SET PICTURE =:pic";

QVarient var(byte);
QSqlQuery query;
query.prepare(command);
query.bindValue(":pic", var); if (!query.exec()) {
qDebug() << QString("exec error, command is :%1, error reason is :%2")
.arg(command)
.arg(query.lastError().text());
}

这样就可以去执行更新语句了。

Qt Oracle往数据库里插入或者更新图片的更多相关文章

  1. Android Sqlite数据库执行插入查询更新删除的操作对比

    下面是在Android4.0上,利用Sqlite数据库的insert,query,update,delete函数以及execSql,rawQuery函数执行插入,查询,更新,删除操作花费时间的对比结果 ...

  2. oracle 向数据库同时插入多条数据

    oracle 与 mysql 不同. mysql 可以直接插入多条数据的操作:  采用 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 或者 INSERT ...

  3. MYSQL数据库学习----插入、更新、删除

    一:插入数据 1 为表的所有字段插入数据 INSERT INTO 表名 (值1,值2, 值3...); 2 为表的指定字段插入数据 INSERT INTO 表名(字段1,字段2,...) VALUES ...

  4. C#向数据库中插入或更新null空值

    一.在SQL语句中直接插入null或空字符串“” int? item = null; item == null ? "null" : item.ToString(); item = ...

  5. JDBC往数据库里插入数据

    首先还是一个工具类 插入数据

  6. wpf linq数据库无法插入

    最近做wpf应用程序,遇到一个很奇怪的问题,我用代码往数据库里插入数据成功了,但去vs的服务器资源管理器里查看数据库总是最开始的样子,什么都没有插入进去,然后就检查代码,打日志查看sql语句,发现都没 ...

  7. 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表

    最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...

  8. 探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB

    探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB 前言:        从Oracle 12c開始,引入了容器数据库的概念,能够实现数据库插拔操作,例如以下图: 如今我们 ...

  9. Oracle数据库中插入日期型数据(to_date的用法)(转载)

    往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYY ...

  10. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

随机推荐

  1. gdb 初次运行卡住 Starting program: [New Thread 0x1103 of process 843]

    安装完后gdb一般会有提示: ==> gdbgdb requires special privileges to access Mach ports.You will need to codes ...

  2. 2021年最新js手机号正则验证 最全全部号段

    手机号验证正则 /^1[3-9]\d{9}$/ js的例子 isphone.html <html> <body> <input id="Tel" ty ...

  3. Spring Data JPA中使用Example进行动态查询

    Spring Data JPA中使用Example进行动态查询主要涉及:实体对象.ExampleMatcher和Example等三种类类型.基于实例的动态查询所包含的三要素如下:1.实体对象:在ORM ...

  4. Solution -「GLR-R4」大暑

    \(\mathscr{Description}\)   Link.   这里有兔以前写的另一个题意,大家可以参考着看看.   你有两个坐标集合 \(X,Y\),\(X=\{(0,y)\mid y\in ...

  5. 让 LLM 来评判 | 基础概念

    基础概念 这是 让 LLM 来评判 系列文章的第一篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么是评估模 ...

  6. MySQL 中information_schema、mysql、performance_schema、sys 简介

    一.information_schema简介在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库.其中保存着关于MySQL服务器所维护的所有其他数据库的信息. ...

  7. w3cschool-Hive 教程

    https://www.w3cschool.cn/hive_manual/ 一.简述 HiveQL是一种声明式语言,用户提交查询,而Hive会将其转换成MapReduce job,如下图.一般来说大部 ...

  8. 利用bash脚本函数执行创建用户和组,并设置sudo权限等

    示例:利用bash脚本函数执行创建用户和组,并设置sudo权限等: Linux服务器设置历史命令记录,及命令执行的时间: sudo echo 'HISTTIMEFORMAT="%F %T w ...

  9. ctfshow--web9 md5二进制格加密的绕过

    dirsearch 扫到robots文件 查看一下 发现有个index.phps文件 访问这个index.phps,可以下载下来 我们来审计一下这里的代码 <?php $flag="& ...

  10. python教程合集(更新中)

    python教程目录 基础 hello world 变量 输入输出