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;}
阅读全文
0 0
- QT--SQLite
- QT+SQLITE
- Qt操作SQLite数据库
- Qt:SQLite 3入门教程
- SQLite in Qt
- Qt 与 Sqlite数据库
- QT读写Sqlite数据库
- QT SQLITE 驱动问题
- qt sqlite 触发器 使用
- QT SQlite 错误
- ARM QT sqlite 解决方案
- ARM QT sqlite 解决方案
- QT 操作Sqlite数据库
- Qt 连接SQLITE数据库
- Qt:SQLite 3入门教程
- QT数据库--sqlite
- Qt数据库sqlite总结
- QT操作Sqlite数据库
- 写在开播
- git设置编码
- 025-Java-016
- 国际互联网计算与物联网大会ICOMP 2017高度赞誉DroiBaaS全栈式优化架构
- 基于 Websocket + PHP + Swoole + Redis 第三方实时推送
- QT+SQLITE
- 【C# 机房重构】 存储过程
- phantomJs+CasperJS windows上安装
- Gradle
- CSS代码缩写,占用更少的带宽
- Apache和Tomcat实现集成、动静态资源分离、集群和负载均衡
- Mac下查看网络端口占用情况
- 线段树入门三道题
- HttpClient 教程 (四)