QT+SQLITE

来源:互联网 发布:淘宝外包客服多少钱 编辑:程序博客网 时间:2024/06/11 23:42

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_OBJECTprivate:    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,QMap<QString,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,QVector<int>& arrINT,QMap<int,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,int iID,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;}
原创粉丝点击