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;
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- AJAX 的DragPanelExtender 拖曳控件使用,并保存位置(此方法
- C#中Dictionary泛型集合7种常见的用法
- ruby-on-rails – 当你说Ruby是反射的时,这主要是指“鸭子打
- ruby-on-rails – 发生未处理的低级错误.应用程序日志可能有
- oracle11g – Oracle不可用ora-01034
- 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和
- jlink烧写mini2440 nor flash
- LINQ to XML没有使用模式集的数据
- FlexGrid合并单元格 - zhengjiazeng的日志 - 网易博客
- c# – 从数据集中获取过滤数据到数据表