ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

QT上的Mysql编程

2020-06-09 16:51:51  阅读:356  来源: 互联网

标签:status QT dataBase int 编程 sqlQuery Mysql arg LGMsg


一.单个数据库单个表格

1.建立并打开数据库

"MyBlastRecord.db"为我们要创建的数据库名

2.往数据库里创建表格

recordview为我们创建表格名
recordview(id int primary key, date text, num int, status int, BlastRecord_id int)
括号里是我们表格里内容

3.sql_query.exec("select * from recordview");

访问表格里面的数据

4.sql_query.next()

表格的下一行,直到表格为空

5.数据库关闭。

//建立并打开数据库
    QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
    database.setDatabaseName("MyBlastRecord.db");               //格式  (MyBlastRecord.db)
    if (!database.open())
    {
        qDebug() << "Error: Failed to connect database(MyBlastRecord)." << database.lastError();
    }
    //创建表格
    QSqlQuery sql_query = QSqlQuery(database);
    if(!sql_query.exec("create table recordview(id int primary key, date text, num int, status int, BlastRecord_id int)"))
    {
        qDebug() << "Error: Fail to create table.(updateBlastRecord)"<< sql_query.lastError();
    }
    sql_query.exec("select * from recordview");
    if(sql_query.exec())
    {
        while(sql_query.next())
        {
            Mode_temp=sql_query.value(3).toInt();
            if (sql_query.value(3).toInt() !=1)
            {
                ret++;
            }
        }
    }
    database.close();

 二、单个数据库多个表格

 

#include <QSqlRecord>
#include <QSqlDriver>
#include <QSqlField>

#define CONNECTNAME "mysqlite_con"
#define DATABASENAME "Launcher.db"
#define DATABASEDRIVER "QSQLITE"

DataManage* DataManage::m_pDataManage = Q_NULLPTR;
QMutex  DataManage::m_mutex;

DataManage::DataManage(QObject *parent) : QObject(parent)
{
    if (QSqlDatabase::contains(CONNECTNAME)){
        m_dataBase = QSqlDatabase::database(CONNECTNAME);
    }else{
        m_dataBase = QSqlDatabase::addDatabase(DATABASEDRIVER,CONNECTNAME);
        m_dataBase.setDatabaseName(DATABASENAME);
    }
    if(!m_dataBase.isOpen())
        m_dataBase.open();

    QStringList tableList = m_dataBase.tables();
    QSqlQuery sqlQuery(m_dataBase);

    if(!tableList.contains("systemview")){
        if(!sqlQuery.exec("create table systemview(id int primary key, bdlight int, bklight int, bmtime datetime, longitude varchar(5), "
                          "latitude varchar(5), locattime datetime, style int, keyvoice int, charge int, "
                          "canswitch int, mA1data int, mA2data int, uAdata int, LG00Enable int, orgNum int, "
                          "StatusCheck int, PageStyle int, NeedAuth int, NeedGPS int, AuthNum int, DeviceID1 int, DeviceID2 int, "
                          "DeviceID3 int, DeviceID4 int, DeviceID5 int, SW int, DVStatus int)")){

            qDebug() << "Error: Fail to create table:systemview"<<sqlQuery.lastError();
        }
    }
   if(!tableList.contains("delayview")){

       if(!sqlQuery.exec("create table delayview(id int primary key, code text, time int, area int, hole int, authstatus int)")){
           qDebug() << "Error: Fail to create table:delayview"<<sqlQuery.lastError();
       }
   }
   if(!tableList.contains("recordview")){

       if(!sqlQuery.exec("create table recordview(id int primary key, date text,"
                         " num int, status int, BlastRecord_id int, Longitude text, Latitude text, bscanma int, bscanmv int, "
                         "scaningma int, scaningmv int, bchargema int, bchargemv int, chargingma int, chargingmv int, chargedma int, "
                         "bchargedmv int, bboomma int, bboomemv int, batenp int)")){
           qDebug() << "Error: Fail to create table:recordview"<<sqlQuery.lastError();
       }
   }
   if(!tableList.contains("recordlistview")){

       if(!sqlQuery.exec("create table recordlistview(id int primary key, code text, time int, blastrecord_id int)")){
           qDebug() << "Error: Fail to create table:recordlistview"<<sqlQuery.lastError();
       }
   }

   if(!tableList.contains("authheadview")){

       if(!sqlQuery.exec("create table authheadview(id int primary key, espdata text, "
                         "authid text, longitude varchar(5), latitude varchar(5),"
                         "radius int, starttime text, stoptime text, lgnumber int,"
                         " usefultime int, lgrang_number int, password_number int,downdata text)")){
           qDebug() << "Error: Fail to create table:authheadview"<<sqlQuery.lastError();
       }
   }
   if(!tableList.contains("authpasswordview")){

       if(!sqlQuery.exec("create table authpasswordview(id int primary key, LGPassword text, authfile_id int)")){
           qDebug() << "Error: Fail to create table:authpasswordview"<<sqlQuery.lastError();
       }
   }
   if(!tableList.contains("userInfo")){

       if(!sqlQuery.exec("create table userInfo(userId int primary key, orgId varchar(32), "
                         "realName nvarchar(32),orgName nvarchar(32),loginName varchar(32),userPasswd varchar(32))")){
           qDebug() << "Error: Fail to create table:userInfo"<<sqlQuery.lastError();
       }
   }

}

 

 访问数据库的表格

void DataManage::setDelayPara(LGMessageDef *LGMsg, int lg_num)
{
    int i = 0, j = 0;
    char *code = new char[24];

    QSqlQuery sqlQuery(m_dataBase);

    sqlQuery.exec("select * from delayview");
    if(sqlQuery.exec())
    {
        while(sqlQuery.next())
        {
            j++;
        }
    }
    for (i = 0; i < lg_num; i++)
    {
        if (0 != ((LGMsg+i)->Det_status & mDesign))
        {
            continue;
        }
        DetidToString((LGMsg+i)->Uid, code);
        QString uid = QString(QLatin1String(code));
        int time = (LGMsg+i)->DT;
        int area = (LGMsg+i)->KW>>10;
        int hole = (LGMsg+i)->KW&0x3FF;
        int status = 1;
        if(((LGMsg+i)->Det_status & mAuthorize)==0)  //获取雷管当前状态
        {
            status=0;
        }
        if(false == m_dataBase.tables().contains(uid))
        {
            QString str=QString("INSERT INTO delayview VALUES(%1, \"%2\", %3, %4, %5, %6)").arg(j+1).arg(uid).arg(time).arg(area).arg(hole).arg(status);
            sqlQuery.exec(str);
            (LGMsg+i)->DesignDT=(LGMsg+i)->DT;
            (LGMsg+i)->DesignKW=(LGMsg+i)->DT;
            (LGMsg+i)->Det_status |=mDesign;
            j++;
        }
    }
    sqlQuery.exec();
    delete code;
    //return true;
}

 

标签:status,QT,dataBase,int,编程,sqlQuery,Mysql,arg,LGMsg
来源: https://www.cnblogs.com/zhouyuqing1024/p/13073375.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有