diff options
author | Philipp Sehmisch <crush@themanaworld.org> | 2009-03-05 19:40:40 +0100 |
---|---|---|
committer | Philipp Sehmisch <crush@themanaworld.org> | 2009-03-05 19:40:40 +0100 |
commit | 6f60667b2671104365c7fcfa7866064e04d50156 (patch) | |
tree | 2161adc2f40bcc0fc61baf2b92508eda160e1a6f /src/account-server/dalstorage.cpp | |
parent | 8abc32b07bd86a45be9863ec9ae8ca1fdb4d3e75 (diff) | |
parent | 7ae5cf4b6d17a85a010c1eb3262d340e94f44e77 (diff) | |
download | manaserv-6f60667b2671104365c7fcfa7866064e04d50156.tar.gz manaserv-6f60667b2671104365c7fcfa7866064e04d50156.tar.bz2 manaserv-6f60667b2671104365c7fcfa7866064e04d50156.tar.xz manaserv-6f60667b2671104365c7fcfa7866064e04d50156.zip |
Merge branch 'master' of git@gitorious.org:tmwserv/mainline
Diffstat (limited to 'src/account-server/dalstorage.cpp')
-rw-r--r-- | src/account-server/dalstorage.cpp | 79 |
1 files changed, 78 insertions, 1 deletions
diff --git a/src/account-server/dalstorage.cpp b/src/account-server/dalstorage.cpp index 55a31d30..eac9f409 100644 --- a/src/account-server/dalstorage.cpp +++ b/src/account-server/dalstorage.cpp @@ -41,7 +41,7 @@ // defines the supported db version #define DB_VERSION_PARAMETER "database_version" -#define SUPPORTED_DB_VERSION "2" +#define SUPPORTED_DB_VERSION "3" /** @@ -1006,6 +1006,7 @@ void DALStorage::setMemberRights(int guildId, int memberId, int rights) << " set rights = '" << rights << "'" << " where member_id = \"" << memberId << "\";"; + mDb->execSql(sql.str()); } catch (const dal::DbSqlQueryExecFailure& e) { @@ -1627,3 +1628,79 @@ void DALStorage::setOnlineStatus(int charId, bool online) LOG_ERROR("(DALStorage::setOnlineStatus) SQL query failure: " << e.what()); } } + +void DALStorage::addTransaction(const Transaction &trans) +{ + try + { + std::stringstream sql; + sql << "INSERT INTO " << TRANSACTION_TBL_NAME + << " VALUES (NULL, " << trans.mCharacterId << ", " << trans.mAction + << ", '" << trans.mMessage << "', " << time(NULL) << ")"; + mDb->execSql(sql.str()); + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::addTransaction) SQL query failure: " << e.what()); + } +} + +std::vector<Transaction> DALStorage::getTransactions(unsigned int num) +{ + std::vector<Transaction> transactions; + string_to<unsigned int> toUint; + + try + { + std::stringstream sql; + sql << "SELECT * FROM " << TRANSACTION_TBL_NAME; + dal::RecordSet const &rec = mDb->execSql(sql.str()); + + int size = rec.rows(); + int start = size - num; + // Get the last <num> records and store them in transactions + for (int i = start; i < size; ++i) + { + Transaction trans; + trans.mCharacterId = toUint(rec(i, 1)); + trans.mAction = toUint(rec(i, 2)); + trans.mMessage = rec(i, 3); + transactions.push_back(trans); + } + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::getTransactions) SQL query failure: " << e.what()); + } + + return transactions; +} + +std::vector<Transaction> DALStorage::getTransactions(time_t date) +{ + std::vector<Transaction> transactions; + string_to<unsigned int> toUint; + + try + { + std::stringstream sql; + sql << "SELECT * FROM " << TRANSACTION_TBL_NAME << " WHERE time > " + << date; + dal::RecordSet const &rec = mDb->execSql(sql.str()); + + for (int i = 0; i < rec.rows(); ++i) + { + Transaction trans; + trans.mCharacterId = toUint(rec(i, 1)); + trans.mAction = toUint(rec(i, 2)); + trans.mMessage = rec(i, 3); + transactions.push_back(trans); + } + } + catch (dal::DbSqlQueryExecFailure const &e) + { + LOG_ERROR("(DALStorage::getTransactions) SQL query failure: " << e.what()); + } + + return transactions; +} |