summaryrefslogtreecommitdiff
path: root/src/account-server/storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/account-server/storage.cpp')
-rw-r--r--src/account-server/storage.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/account-server/storage.cpp b/src/account-server/storage.cpp
index 8876cd4b..c39bfc5d 100644
--- a/src/account-server/storage.cpp
+++ b/src/account-server/storage.cpp
@@ -591,6 +591,30 @@ Character *Storage::getCharacter(const std::string &name)
return 0;
}
+unsigned int Storage::getCharacterId(const std::string &name)
+{
+ std::ostringstream sql;
+ sql << "SELECT id FROM " << CHARACTERS_TBL_NAME << " WHERE name = ?";
+ if (!mDb->prepareSql(sql.str()))
+ return 0;
+ try
+ {
+ mDb->bindValue(1, name);
+ const dal::RecordSet &charInfo = mDb->processSql();
+ if (charInfo.isEmpty())
+ return 0;
+
+ string_to< unsigned > toUint;
+ return toUint(charInfo(0, 0));
+ }
+ catch (const dal::DbSqlQueryExecFailure &e)
+ {
+ utils::throwError("DALStorage::getCharacterId #1) SQL query failure: ",
+ e);
+ }
+ return 0;
+}
+
bool Storage::doesUserNameExist(const std::string &name)
{
try
@@ -1478,9 +1502,9 @@ void Storage::setMemberRights(int guildId, int memberId, int rights)
{
std::ostringstream sql;
sql << "UPDATE " << GUILD_MEMBERS_TBL_NAME
- << " SET rights = '" << rights << "'"
- << " WHERE member_id = '" << memberId << "'"
- << " AND guild_id = '" << guildId << "'';";
+ << " SET rights = " << rights
+ << " WHERE member_id = " << memberId
+ << " AND guild_id = " << guildId << ";";
mDb->execSql(sql.str());
}
catch (const dal::DbSqlQueryExecFailure& e)