#include "sqldatabase.h" int SqlDatabase::m_nInst = 0; SqlDatabase::SqlDatabase(QObject *pParent) : QObject(pParent) { m_hostName = ""; m_databaseName = ""; m_userName = ""; m_passWord = ""; m_driverName = ""; m_connectionName = QString("__SqlDatabase__%1").arg(++SqlDatabase::m_nInst); m_pdb = NULL; } SqlDatabase::~SqlDatabase(void) { close(); } bool SqlDatabase::open(void) { m_pdb = new QSqlDatabase(QSqlDatabase::addDatabase(m_driverName, m_connectionName)); m_pdb->setHostName(m_hostName); m_pdb->setDatabaseName(m_databaseName); m_pdb->setUserName(m_userName); m_pdb->setPassword(m_passWord); return m_pdb->open(); } void SqlDatabase::close(void) { if(m_pdb) { if(m_pdb->isOpen()) m_pdb->close(); delete m_pdb; m_pdb = NULL; QSqlDatabase::removeDatabase(m_connectionName); } } SqlQuery * SqlDatabase::query(const QString &sql) const { if(isOpen()) return new SqlQuery(sql, *m_pdb); else return Q_NULLPTR; } bool SqlDatabase::isDriverAvailable(const QString &driveName) { return QSqlDatabase::isDriverAvailable(driveName); } QString SqlDatabase::getHostName(void) const { return m_hostName; } void SqlDatabase::setHostName(const QString &val) { m_hostName = val; } QString SqlDatabase::getDatabaseName(void) const { return m_databaseName; } void SqlDatabase::setDatabaseName(const QString &val) { m_databaseName = val; } QString SqlDatabase::getUsername(void) const { return m_userName; } void SqlDatabase::setUsername(const QString &val) { m_userName = val; } QString SqlDatabase::getPassword(void) const { return m_passWord; } void SqlDatabase::setPassword(const QString &val) { m_passWord = val; } QString SqlDatabase::getDriverName(void) const { return m_driverName; } void SqlDatabase::setDriverName(const QString &driverName) { m_driverName = driverName; } bool SqlDatabase::isOpen(void) const { return !!m_pdb && m_pdb->isOpen(); } ////////////////////////////////////////////////////////////////////////////////////////////// // SqlQuery::SqlQuery(QObject *pParent) : QObject(pParent) { m_pQuery = NULL; } SqlQuery::SqlQuery(const QString &query, QSqlDatabase db) { m_pQuery = new QSqlQuery(query, db); } SqlQuery::~SqlQuery(void) { close(); } void SqlQuery::close(void) { if(m_pQuery) { delete m_pQuery; m_pQuery = NULL; } } bool SqlQuery::next(void) { if(m_pQuery) return m_pQuery->next(); return false; } bool SqlQuery::previous(void) { if(m_pQuery) return m_pQuery->previous(); return false; } QVariant SqlQuery::value(int index) const { QVariant v; if(m_pQuery) v = m_pQuery->value(index); return v; } QVariant SqlQuery::value(const QString &name) const { QVariant v; if(m_pQuery) v = m_pQuery->value(name); return v; } bool SqlQuery::isValid(void) const { if(m_pQuery) return m_pQuery->isValid(); return false; } bool SqlQuery::isActive(void) const { if(m_pQuery) return m_pQuery->isActive(); return false; } int SqlQuery::size(void) const { if(m_pQuery) return m_pQuery->size(); return 0; }