qt之数据库对照片的存取

Posted that-boy-done

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt之数据库对照片的存取相关的知识,希望对你有一定的参考价值。

需要确保数据库连接上 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之数据库对照片的存取的主要内容,如果未能解决你的问题,请参考以下文章

小区物业管理系统-照片存取

QT 实用代码片段

从图库中选择照片(onActivityResult()问题 - 我想是这样) - 片段Android

26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段

iOS开发之保存照片到自己创建的相簿

java大对象存取的简单实现的代码