Files
clients/sfilterprocess/sdbmanager.cpp
admin 0c568df009 new filterprocess
git-svn-id: svn://192.168.0.12/source@257 8346c931-da38-4b9b-9d4c-e48b93cbd075
2016-03-31 08:11:07 +00:00

125 lines
3.3 KiB
C++

#include <QString>
#include <QStringList>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QVariant>
#include "sdbmanager.h"
void SDBManager::addDatabase(const QString& _dbName,const QString& _host,const QString& _id, const QString& _pw, const QString& _db, const int& _port)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", _dbName);
db.setHostName(_host);
db.setUserName(_id);
db.setPassword(_pw);
db.setDatabaseName(_db);
db.setPort(_port);
}
void SDBManager::addDatabase(const QString& _dbName, const E_DATABASE& _eDatabase, const QString& _host, const QString& _id, const QString& _pw, const QString& _db, const int& _port)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", _dbName);
db.setHostName(_host);
db.setUserName(_id);
db.setPassword(_pw);
db.setDatabaseName(_db);
db.setPort(_port);
m_mapDBname.insert(_eDatabase, _dbName);
}
QSqlDatabase SDBManager::getDBConnection(const QString& _dbName) const
{
return QSqlDatabase::database(_dbName);
}
QSqlDatabase SDBManager::getDBConnection(const E_DATABASE& _eDatabase) const
{
return QSqlDatabase::database(m_mapDBname.value(_eDatabase));
}
bool SDBManager::open(const QString& _dbName)
{
QSqlDatabase db = QSqlDatabase::database(_dbName);
return db.open();
}
bool SDBManager::open(const E_DATABASE& _eDatabase)
{
QSqlDatabase db = QSqlDatabase::database(m_mapDBname.value(_eDatabase));
return db.open();
}
void SDBManager::close(const E_DATABASE& _eDatabase)
{
QSqlDatabase db = QSqlDatabase::database(m_mapDBname.value(_eDatabase));
db.close();
}
void SDBManager::close(const QString& _dbName)
{
QSqlDatabase db = QSqlDatabase::database(_dbName);
db.close();
}
void SDBManager::close()
{
QStringList strlist = QSqlDatabase::connectionNames();
foreach (const QString& str, strlist)
QSqlDatabase::database(str).close();
}
QSqlQuery SDBManager::sqlQuery(const E_DATABASE& _eDatabase)
{
QSqlQuery query(QSqlDatabase::database(m_mapDBname.value(_eDatabase)));
return query;
}
QSqlQuery SDBManager::sqlQuery(const QString& _dbName)
{
QSqlQuery query(QSqlDatabase::database(_dbName));
return query;
}
bool SDBManager::reOpen(const QString& _dbName)
{
close(_dbName);
return open(_dbName);
}
bool SDBManager::reOpen(const E_DATABASE& _eDatabase)
{
close(_eDatabase);
return open(_eDatabase);
}
bool SDBManager::isConnectionError(const QSqlError& _error)
{
if(_error.number() == 2013 || _error.number() == 2006 || _error.number() == 10054)
return true;
return false;
}
SDBManager::~SDBManager()
{
QStringList strlist = QSqlDatabase::connectionNames();
foreach (const QString& str, strlist)
{
QSqlDatabase db = QSqlDatabase::database(str);
if(db.isOpen())
db.close();
}
foreach (const QString& str, strlist)
QSqlDatabase::removeDatabase(str);
}
QSqlDatabase SDBManager::operator[](const QString& _dbName) const
{
return QSqlDatabase::database(_dbName);
}
QSqlDatabase SDBManager::operator[](const E_DATABASE& _eDatabase) const
{
return QSqlDatabase::database(m_mapDBname.value(_eDatabase));
}