加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

QT+SQLITE

发布时间:2020-12-12 19:21:35 所属栏目:百科 来源:网络整理
导读:1、自己设计的一个SQLITE 管理类 头文件 #ifndef AEYE_PTC_SQLITE # define AEYE_PTC_SQLITE #include "qobject.h" #include QtSql/QSqlQuery #include QDebug #include QtSql/QSqlError #include QtSql/QSqlDatabase #include qmap.h #include "Def_Struct.

1、自己设计的一个SQLITE 管理类

头文件

#ifndef AEYE_PTC_SQLITE
#define AEYE_PTC_SQLITE
#include "qobject.h"
#include <QtSql/QSqlQuery>
#include <QDebug>
#include <QtSql/QSqlError>
#include <QtSql/QSqlDatabase>
#include <qmap.h>
#include "Def_Struct.h"
#include <QDateTime>
#include <QMutex>
#include <QVector>
#include "PTCCommunication.h"
 #ifdef _DEBUG
 #pragma comment(lib,"QtSqld4.lib")
 #else
#pragma comment(lib,"QtSql4.lib")
#endif

#define AYASQLITE SQliteManger::getInstance()

class SQliteManger : public QObject
{
    Q_OBJECT
private:
    explicit  SQliteManger(QObject *parent = 0);
public:
    static SQliteManger * getInstance() 
    {
        if (m_InstanceSQ == NULL)
            m_InstanceSQ = new SQliteManger();

        return m_InstanceSQ;
    }

    static void realseInstance()
    {
        if(m_InstanceSQ!=NULL)
        {
            delete m_InstanceSQ;
            m_InstanceSQ=NULL;
        }
    }

private:
    static SQliteManger * m_InstanceSQ;
    QString m_strDataBaceName;
    QMutex m_QMutex;                    // 互斥量
    //QSqlQuery query;
public:

    //bool InsertSql(QMap<QString,QString> &mapSS,QMap<QString,int> &mapSI,QString _table);
    bool UpdataSql(QMap<QString,QString> mapSS,int> mapSI,QString _table,QString strConditions);
    int SelectMaxId(QString _table);
    int SelectCountItems(QString _table);
    bool DeleteSql(bool isAll,int iID,QString _table);
    //T_PersonBaceInfor
    bool InsertBaceInfor(StructCheckMBRT baceinfor,int isUpdata);
    void SelectBaceInfor(int index,QVector<int>& arrINT,QMap<int,int>& mapUp);
    //T_MODES
    bool InsertModes(StruModel modeInfor,int isUpdata);
    bool SelectModes(int index,int>& mapUp); 

    //t_num_..
    bool InsertAddr(QString upcode,QString selfcode,QString desc,QString _tableName);
    bool SelectAddr(QVector<StruAddrList>& arrAddr,QString _tableName);

    //t_login
    bool login(QString username,QString password);
    bool UpdataFailNum(QString TableName,int updataNum,int id);
};
#endif

.Cpp 文件

int SQliteManger::SelectCountItems(QString _table)
{

    QMutexLocker lock(&m_QMutex);
    QString strSql;
    strSql = QString("select count(*) max from %1;").arg(_table);
    QSqlDatabase database;
    if(QSqlDatabase::contains("GBond"))
        database = QSqlDatabase::database("GBond");
    else
    {
        database = QSqlDatabase::addDatabase("QSQLITE","GBond");
        database.setDatabaseName("../Resources/db/TYCL.db");
    }
    if(!database.open())
    {  
        database.close();
        return false;
    }
    {
        QSqlQuery query;
        int ret = 0;
        query = QSqlQuery(database);
        if (!query.exec(strSql))
        {
            QSqlError error = query.lastError();
            qDebug()<<error.databaseText();
            QSqlDatabase::removeDatabase("QSQLITE");
            database.close();
            return -1;
        }
        while (query.next())
        {

            ret = query.value(0).toInt();
            QSqlDatabase::removeDatabase("QSQLITE");
            database.close();
            return  ret;
        }
    }
    database.close();
    QSqlDatabase::removeDatabase("QSQLITE");
    return -1;
}

bool SQliteManger::DeleteSql(bool isAll,QString _table)
{
    QMutexLocker lock(&m_QMutex);
    QSqlDatabase database;
    if(QSqlDatabase::contains("GBond"))
        database = QSqlDatabase::database("GBond");
    else
    {
        database = QSqlDatabase::addDatabase("QSQLITE","GBond");
        database.setDatabaseName("../Resources/db/TYCL.db");
    }
    if(!database.open())
    {  
        database.close();
        return false;
    }
    QString strSql;
    if (isAll)
    {
        strSql = QString("delete from %1 where id = %2")
            .arg(_table)
            .arg(iID);
    }
    else
    {
        strSql = QString("delete from %1").arg(_table);
    }
    {
        QSqlQuery query;
        query = QSqlQuery(database);
        if (!query.exec(strSql))
        {
            QSqlError error = query.lastError();
            qDebug()<<error.databaseText();
            database.close();
            QSqlDatabase::removeDatabase("QSQLITE");
            return false;
        }
    }
    database.close();
    QSqlDatabase::removeDatabase("QSQLITE");
    return true;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读