需要确保数据库连接上 QOCI为驱动

//oracle 数据库连接 //需要在执行文件目录添加 oci.dll oraociei11.dll

    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
    db.setHostName("192.3.8.105");//数据库主机
    db.setPort(1521);
    db.setDatabaseName("ORCL");//数据库服务名
    db.setUserName("RWGH");//数据库用户名
    db.setPassword("rwgh");//密码
    bool ok = db.open();
    qDebug()<<ok;
    if(1)
    {
        //将照片以二进制流的方式存到数据库
        QPixmap pixmap("./image/test.png");
        QByteArray byteArray = QByteArray();
        QBuffer buffer(&byteArray);
        buffer.open(QIODevice::WriteOnly);
        pixmap.save(&buffer,"png",0);

        QString str = QString("22");//图片ID
        //插入数据库 TEST_PIC为数据库表明  CONTENT为存储照片字段 为Blob类型
        QString strQSL = QString("insert into TEST_PIC(ID,CONTENT) values('%1',?)").arg(str);

        QSqlQuery query;
        query.prepare(strQSL);
        query.addBindValue(byteArray);
        query.exec();
    }
    if(1)
    {
        //从数据库读取照片
        QByteArray byteText;
        QString strsql = QString("select CONTENT,ID from TEST_PIC");
        QSqlQuery query;
        query.exec(strsql);

        while (query.next()) {
            byteText = query.value(0).toByteArray();
            QString id = query.value(1).toString();
            QPixmap pix;
            pix.loadFromData(byteText,"png");
            pix.save(QString("./test2.png"));//保存从数据库读取的照片到本地
        }
    }

qt之数据库对照片的存取的更多相关文章

  1. 在Jena框架下基于MySQL数据库实现本体的存取操作

    在Jena框架下基于MySQL数据库实现本体的存取操作 转自:http://blog.csdn.net/jtz_mpp/article/details/6224311 最近在做一个基于本体的管理系统. ...

  2. QT 操作数据库

    整理一下 QT 操作数据库的一些要点,以备以后的查询学习(主要是操作 mysql ). 首先,要查询相关的驱动是否已经装好了,可以用以下的程序进行验证: #include <QtCore/QCo ...

  3. qt 5 数据库操作(mysql)

    其实大家都知道,QT5以上的都自带了数据库驱动,所以呢,基本上可以直接使用,于是如果想知道怎么连接数据库,请参考这位大神写的.http://qtdebug.com/DB-AccessMySQL.htm ...

  4. 界面编程之QT的数据库操作20180801

    /*******************************************************************************************/ 一.数据库连 ...

  5. Qt编写数据库通用翻页demo(开源)

    在Qt与数据库结合编程的过程中,记录一多,基本上都需要用到翻页查看记录,翻页有个好处就是可以减轻显示数据的表格的压力,不需要一次性将数据库表的记录全部显示,也基本上没有谁在一页上需要一次性显示所有记录 ...

  6. QT链接数据库

    在介绍QT与数据的链接问题上,我在这里就不介绍关于QT环境与mysql.sqlite3环境的安装步骤了,以下的所有的操作都是建立在你已经安装了所有环境的基础上的.好的,那我们就具体来看一看QT环境中怎 ...

  7. 【转载】QT MySQL数据库操作总结

    转载自http://blog.chinaunix.net/uid-28194872-id-3631462.html #include <QtSql> QT += sqlQSqlDataba ...

  8. 2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

     Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan ...

  9. QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型

    QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序 常用函数 QVariant headerDa ...

随机推荐

  1. 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比

    分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的J ...

  2. 关于 Microsoft Dynamics CRM has encountered an error 弹窗的问题

    最近用 IE 测试 CRM 网站的时候发现一个问题:时不时会弹出“Microsoft Dynamics CRM has encountered an error”的小框框,而且还不是在特定位置才会弹出 ...

  3. JS代码风格自动规整工具Prettier

    问题背景 通常使用 ESLint做代码风格检查检查, 和部分代码质量检查. 但是使用ESLint在入库时候, 会产生很多的代码修正工作, 需要开发者一个一个的修改. 如果很多,并且时间紧迫,甚是尴尬. ...

  4. [Reinforcement Learning] 动态规划(Planning)

    动态规划 动态规划(Dynamic Programming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于具有如下性质的问题: 具有最优子结构(Opt ...

  5. MySql的Communications link failure解决办法

    在使用JDBC连接mysql时可能会遇到以下错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications li ...

  6. 【gitlab】gitlab快速部署教程

    gitlab快速部署教程 部署环境 Ubuntu 16.04(亲测可用) 开始部署 安装依赖 sudo apt-get install curl openssh-server ca-certifica ...

  7. jQuery新版本没有了Toggle事件,两个按钮分别控制隐藏显示,同时这两个按钮点击也要互斥。

    十二月没来得及整理发布,一直在草稿箱.现在已经2019年1月了... 需求大概是这样的 //XX点击事件 var flagBar = 0; $("#doNotBaseRate"). ...

  8. 安装spring tool suite时遇到的问题

    首先在Eclipse的市场里没有找到,在官网下载安装包后不能安装,于是找了解决办法,跟安装suite的版本还有关系. 我下的是http://download.springsource.com/rele ...

  9. Operation System

  10. Python爬虫基础之正则表达式

    一.Python正则表达式的基本使用 Python 3 使用re模块可以实现大部分的正则表达式情况. 1.re.compile(pattern, flags=0) re.compile构建匹配规则并返 ...