diff --git a/DBSettingsReader.cpp b/DBSettingsReader.cpp index 078059eea..ad787ac20 100644 --- a/DBSettingsReader.cpp +++ b/DBSettingsReader.cpp @@ -30,20 +30,26 @@ CDBSettingsReader::CDBSettingsReader(THREAD_ID tid, DATABASE_ID did, const std::string &pTable, const std::string &pSQL) { table=pTable; - IDatabase *db=Server->getDatabase(tid, did); + db=Server->getDatabase(tid, did); if(pSQL.empty() ) - query=db->Prepare("SELECT value FROM "+table+" WHERE key=?"); + query=db->Prepare("SELECT value FROM "+table+" WHERE key=?", false); else - query=db->Prepare(pSQL); + query=db->Prepare(pSQL, false); } CDBSettingsReader::CDBSettingsReader(IDatabase *pDB, const std::string &pTable, const std::string &pSQL) + : db(pDB) { table=pTable; if(pSQL.empty() ) - query=pDB->Prepare("SELECT value FROM "+table+" WHERE key=?"); + query=pDB->Prepare("SELECT value FROM "+table+" WHERE key=?", false); else - query=pDB->Prepare(pSQL); + query=pDB->Prepare(pSQL, false); +} + +CDBSettingsReader::~CDBSettingsReader() +{ + db->destroyQuery(query); } bool CDBSettingsReader::getValue(std::string key, std::string *value) diff --git a/DBSettingsReader.h b/DBSettingsReader.h index fc602ddaa..29ae935a8 100644 --- a/DBSettingsReader.h +++ b/DBSettingsReader.h @@ -6,6 +6,7 @@ class CDBSettingsReader : public CSettingsReader public: CDBSettingsReader(THREAD_ID tid, DATABASE_ID did, const std::string &pTable, const std::string &pSQL=""); CDBSettingsReader(IDatabase *pDB, const std::string &pTable, const std::string &pSQL=""); + ~CDBSettingsReader(); bool getValue(std::string key, std::string *value); @@ -14,5 +15,6 @@ class CDBSettingsReader : public CSettingsReader private: std::string table; + IDatabase* db; IQuery *query; };