sqldatabase.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. #include "sqldatabase.h"
  2. int SqlDatabase::m_nInst = 0;
  3. SqlDatabase::SqlDatabase(QObject *pParent) : QObject(pParent)
  4. {
  5. m_hostName = "";
  6. m_databaseName = "";
  7. m_userName = "";
  8. m_passWord = "";
  9. m_driverName = "";
  10. m_connectionName = QString("__SqlDatabase__%1").arg(++SqlDatabase::m_nInst);
  11. m_pdb = NULL;
  12. }
  13. SqlDatabase::~SqlDatabase(void)
  14. {
  15. close();
  16. }
  17. bool SqlDatabase::open(void)
  18. {
  19. m_pdb = new QSqlDatabase(QSqlDatabase::addDatabase(m_driverName, m_connectionName));
  20. m_pdb->setHostName(m_hostName);
  21. m_pdb->setDatabaseName(m_databaseName);
  22. m_pdb->setUserName(m_userName);
  23. m_pdb->setPassword(m_passWord);
  24. return m_pdb->open();
  25. }
  26. void SqlDatabase::close(void)
  27. {
  28. if(m_pdb)
  29. {
  30. if(m_pdb->isOpen())
  31. m_pdb->close();
  32. delete m_pdb;
  33. m_pdb = NULL;
  34. QSqlDatabase::removeDatabase(m_connectionName);
  35. }
  36. }
  37. SqlQuery * SqlDatabase::query(const QString &sql) const
  38. {
  39. if(isOpen())
  40. return new SqlQuery(sql, *m_pdb);
  41. else
  42. return Q_NULLPTR;
  43. }
  44. bool SqlDatabase::isDriverAvailable(const QString &driveName)
  45. {
  46. return QSqlDatabase::isDriverAvailable(driveName);
  47. }
  48. QString SqlDatabase::getHostName(void) const
  49. {
  50. return m_hostName;
  51. }
  52. void SqlDatabase::setHostName(const QString &val)
  53. {
  54. m_hostName = val;
  55. }
  56. QString SqlDatabase::getDatabaseName(void) const
  57. {
  58. return m_databaseName;
  59. }
  60. void SqlDatabase::setDatabaseName(const QString &val)
  61. {
  62. m_databaseName = val;
  63. }
  64. QString SqlDatabase::getUsername(void) const
  65. {
  66. return m_userName;
  67. }
  68. void SqlDatabase::setUsername(const QString &val)
  69. {
  70. m_userName = val;
  71. }
  72. QString SqlDatabase::getPassword(void) const
  73. {
  74. return m_passWord;
  75. }
  76. void SqlDatabase::setPassword(const QString &val)
  77. {
  78. m_passWord = val;
  79. }
  80. QString SqlDatabase::getDriverName(void) const
  81. {
  82. return m_driverName;
  83. }
  84. void SqlDatabase::setDriverName(const QString &driverName)
  85. {
  86. m_driverName = driverName;
  87. }
  88. bool SqlDatabase::isOpen(void) const
  89. {
  90. return !!m_pdb && m_pdb->isOpen();
  91. }
  92. //////////////////////////////////////////////////////////////////////////////////////////////
  93. //
  94. SqlQuery::SqlQuery(QObject *pParent) : QObject(pParent)
  95. {
  96. m_pQuery = NULL;
  97. }
  98. SqlQuery::SqlQuery(const QString &query, QSqlDatabase db)
  99. {
  100. m_pQuery = new QSqlQuery(query, db);
  101. }
  102. SqlQuery::~SqlQuery(void)
  103. {
  104. close();
  105. }
  106. void SqlQuery::close(void)
  107. {
  108. if(m_pQuery)
  109. {
  110. delete m_pQuery;
  111. m_pQuery = NULL;
  112. }
  113. }
  114. bool SqlQuery::next(void)
  115. {
  116. if(m_pQuery)
  117. return m_pQuery->next();
  118. return false;
  119. }
  120. bool SqlQuery::previous(void)
  121. {
  122. if(m_pQuery)
  123. return m_pQuery->previous();
  124. return false;
  125. }
  126. QVariant SqlQuery::value(int index) const
  127. {
  128. QVariant v;
  129. if(m_pQuery)
  130. v = m_pQuery->value(index);
  131. return v;
  132. }
  133. QVariant SqlQuery::value(const QString &name) const
  134. {
  135. QVariant v;
  136. if(m_pQuery)
  137. v = m_pQuery->value(name);
  138. return v;
  139. }
  140. bool SqlQuery::isValid(void) const
  141. {
  142. if(m_pQuery)
  143. return m_pQuery->isValid();
  144. return false;
  145. }
  146. bool SqlQuery::isActive(void) const
  147. {
  148. if(m_pQuery)
  149. return m_pQuery->isActive();
  150. return false;
  151. }
  152. int SqlQuery::size(void) const
  153. {
  154. if(m_pQuery)
  155. return m_pQuery->size();
  156. return 0;
  157. }