qsqlquery解析MySQL数据_数据上传,下载功能(四)之插入数据QSqlQuery操作
发布日期:2021-06-24 17:54:59 浏览次数:2 分类:技术文章

本文共 2415 字,大约阅读时间需要 8 分钟。

1. 上传数据类,通过QSqlQuery的函数 prepare(const QString &string)函数,通过占位符绑定值

bool MySQLManager::insertData(const QString &datauser, const QString &datahost, const QString &dataname, const QString &datetime, const QByteArray &data, const QString &datadescription)

{

QMutexLocker locker(&m_db_lock);

if (!m_db_mysql.isOpen())

{

m_db_mysql.open();

}

QSqlQuery query(m_db_mysql);//以下执行相关QSL语句

query.prepare("insert into data(DATA_ID,DATA_LOADER,LOADER_HOST,DATA_NAME,CREATE_TIME,DATA,DATA_DESCRIPTION) VALUES (null,:DATA_LOADER,:LOADER_HOST,:DATA_NAME,:CREATE_TIME,:DATA,:DATA_DESCRIPTION)");

query.bindValue(":DATA_LOADER", datauser);

query.bindValue(":LOADER_HOST", datahost);

query.bindValue(":DATA_NAME", dataname);

query.bindValue(":CREATE_TIME", datetime);

query.bindValue(":DATA", data);

query.bindValue(":DATA_DESCRIPTION", datadescription);

bool bsuccess = query.exec();

if (!bsuccess)

{

QString querys = query.lastError().text();

qDebug()<

m_db_mysql.close();

return false;

}

return bsuccess;

}2.查询数据,是整体查询,之后显示在treewidget上,所以查询所有的文件,使用setForwardOnly(true);只向前查询,提高效率,返回一个保存QVector给界面,显示在treeWidget的Item上

QVector MySQLManager::selectData( const QString& sql )

{

QMutexLocker locker(&m_db_lock);

if (!m_db_mysql.isOpen())

{

m_db_mysql.open();

}

//数据存储查询类

QSqlQuery query(m_db_mysql);

query.setForwardOnly(true);

bool bsuccess = query.exec(sql);

QVector vList;

if (bsuccess)

{

int index = 1;

while (query.next())

{

//建表时约定

QString id = query.value(0).toString();

QString datauser = query.value(1).toString();

QString datahost = query.value(2).toString();

QString dataname = query.value(3).toString();

QDateTime datatime = query.value(4).toDateTime();

QString strDatatime = datatime.toString("yyyy-MM-dd hh:mm:ss");

QString data_description = query.value(6).toString();

QStringList strlist;

QString strIndex = QString::number(index);

strlist<

vList.push_back(strlist);

++index;

qDebug()<

}

}

else

{

QString querys = query.lastError().text();

m_db_mysql.close();

qDebug()<

}

return vList;

}3,删除选中的Item

4.下载,返回一个二进制值QByteArray

//下载数据

QByteArray MySQLManager::downData( const QString& sql)

{

QMutexLocker locker(&m_db_lock);

if (!m_db_mysql.isOpen())

{

m_db_mysql.open();

}

QSqlQuery query(m_db_mysql);

QByteArray data;

bool bsuccess = query.exec(sql);

if (bsuccess)

{

if (query.next())

{

data = query.value(0).toByteArray();

}

}

else

{

QString querys = query.lastError().text();

m_db_mysql.close();

qDebug()<

}

return data;

}

转载地址:https://blog.csdn.net/weixin_34237125/article/details/114467829 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c面向对象 java_JAVA基础--面向对象08
下一篇:java 注解 对象_Java基础-学习使用Annotation注解对象

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月02日 19时19分48秒