本文整理汇总了C++中PreparedQueryResult::GetUInt32方法的典型用法代码示例。如果您正苦于以下问题:C++ PreparedQueryResult::GetUInt32方法的具体用法?C++ PreparedQueryResult::GetUInt32怎么用?C++ PreparedQueryResult::GetUInt32使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PreparedQueryResult
的用法示例。
在下文中一共展示了PreparedQueryResult::GetUInt32方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadAuctionItems
void AuctionHouseMgr::LoadAuctionItems()
{
// data needs to be at first place for Item::LoadFromDB
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_LOAD_AUCTION_ITEMS);
PreparedQueryResult result = CharacterDatabase.Query(stmt);
if (!result)
{
barGoLink bar(1);
bar.step();
sLog.outString();
sLog.outString(">> Loaded 0 auction items");
return;
}
barGoLink bar(result->GetRowCount());
uint32 count = 0;
do
{
bar.step();
uint32 item_guid = result->GetUInt32(11);
uint32 item_template = result->GetUInt32(12);
ItemPrototype const *proto = sObjectMgr.GetItemPrototype(item_template);
if (!proto)
{
sLog.outError("AuctionHouseMgr::LoadAuctionItems: Unknown item (GUID: %u id: #%u) in auction, skipped.", item_guid,item_template);
continue;
}
Item *item = NewItemOrBag(proto);
if (!item->LoadFromDB(item_guid, 0, result, item_template))
{
delete item;
continue;
}
AddAItem(item);
++count;
} while (result->NextRow());
sLog.outString();
sLog.outString(">> Loaded %u auction items", count);
}
示例2: _HandleRealmList
/// %Realm List command handler
bool AuthSocket::_HandleRealmList()
{
sLog.outStaticDebug("Entering _HandleRealmList");
if (socket().recv_len() < 5)
return false;
socket().recv_skip(5);
///- Get the user id (else close the connection)
// No SQL injection (prepared statement)
PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_ACCIDBYNAME);
stmt->setString(0, _login);
PreparedQueryResult result = LoginDatabase.Query(stmt);
if (!result)
{
sLog.outError("[ERROR] user %s tried to login and we cannot find him in the database.", _login.c_str());
socket().shutdown();
return false;
}
uint32 id = result->GetUInt32(0);
///- Update realm list if need
sRealmList->UpdateIfNeed();
///- Circle through realms in the RealmList and construct the return packet (including # of user characters in each realm)
ByteBuffer pkt;
size_t RealmListSize = 0;
for (RealmList::RealmMap::const_iterator i = sRealmList->begin(); i != sRealmList->end(); ++i)
{
// don't work with realms which not compatible with the client
if (_expversion & POST_BC_EXP_FLAG) // 2.4.3 and 3.1.3 cliens
{
if (i->second.gamebuild != _build)
{
sLog.outStaticDebug("Realm not added because of not correct build : %u != %u", i->second.gamebuild, _build);
continue;
}
}
else if (_expversion & PRE_BC_EXP_FLAG) // 1.12.1 and 1.12.2 clients are compatible with eachother
{
if (!AuthHelper::IsPreBCAcceptedClientBuild(i->second.gamebuild))
{
continue;
}
}
uint8 AmountOfCharacters;
// No SQL injection. id of realm is controlled by the database.
stmt = LoginDatabase.GetPreparedStatement(LOGIN_GET_NUMCHARSONREALM);
stmt->setUInt32(0, i->second.m_ID);
stmt->setUInt32(1, id);
result = LoginDatabase.Query(stmt);
if (result)
AmountOfCharacters = result->GetUInt8(0);
else
AmountOfCharacters = 0;
uint8 lock = (i->second.allowedSecurityLevel > _accountSecurityLevel) ? 1 : 0;
pkt << i->second.icon; // realm type
if ( _expversion & POST_BC_EXP_FLAG )//only 2.4.3 and 3.1.3 cliens
pkt << lock; // if 1, then realm locked
pkt << i->second.color; // if 2, then realm is offline
pkt << i->first;
pkt << i->second.address;
pkt << i->second.populationLevel;
pkt << AmountOfCharacters;
pkt << i->second.timezone; // realm category
if ( _expversion & POST_BC_EXP_FLAG )//2.4.3 and 3.1.3 clients
pkt << (uint8) 0x2C; // unk, may be realm number/id?
else
pkt << (uint8) 0x0; //1.12.1 and 1.12.2 clients
++RealmListSize;
}
if ( _expversion & POST_BC_EXP_FLAG )//2.4.3 and 3.1.3 cliens
{
pkt << (uint8) 0x10;
pkt << (uint8) 0x00;
}else{//1.12.1 and 1.12.2 clients
pkt << (uint8) 0x00;
pkt << (uint8) 0x02;
}
// make a ByteBuffer which stores the RealmList's size
ByteBuffer RealmListSizeBuffer;
RealmListSizeBuffer << (uint32)0;
if (_expversion & POST_BC_EXP_FLAG) // only 2.4.3 and 3.1.3 cliens
RealmListSizeBuffer << (uint16)RealmListSize;
else
RealmListSizeBuffer << (uint32)RealmListSize;
ByteBuffer hdr;
hdr << (uint8) REALM_LIST;
//.........这里部分代码省略.........