AzerothCore
Pages :

MySQL Types C++

MySQL type Core type Example code Variable operators
BIGINT int64 int64 val = fields[n].GetInt64(); %I64d (Capital i)
BIGINT UNSIGNED uint64 uint64 val = fields[n].GetUInt64(); %I64u (Capital i)
INT int32 int32 val = fields[n].GetInt32(); %u
INT UNSIGNED uint32 uint32 val = fields[n].GetUInt32(); %u
MEDIUMINT int32 int32 val = fields[n].GetInt32(); %u
MEDIUMINT UNSIGNED uint32 uint32 val = fields[n].GetUInt32(); %u
SMALLINT int16 int16 val = fields[n].GetInt16();
SMALLINT UNSIGNED uint16 uint16 val = fields[n].GetUInt16();
TINYINT int8 int16 val = fields[n].GetInt16();
TINYINT UNSIGNED uint8 uint8 val = fields[n].GetUInt8();
FLOAT float float val = fields[n].GetFLOAT();
FLOAT UNSIGNED float float val = fields[n].GetFLOAT();
DOUBLE double double val = fields[n].GetDouble();
DOUBLE UNSIGNED double double val = fields[n].GetDouble();
text string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
longtext string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
tinytext string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
char(k) string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
VARCHAR(k) string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
blob string (std::string) or cstring (char const*) std::string text = fields[n].GetString();
char const* text = fields[n].GetCString();
%s
COUNT(x) uint64 uint64 count = fields[n].GetUInt64(); %UI64FMT*
MAX(x) uint32 or int32 uint32 minmax = fields[n].GetUInt32();
int32 minmax = fields[n].GetInt32();
%u
MIN(x) uint32 or int32 uint32 minmax = fields[n].GetUInt32();
int32 minmax = fields[n].GetInt32();
%u
SUM(x) string (std::string) or cstring (char const*) INT sum;
if (const char* ch = fields[n].GetCString())
sum = atoi(ch);
%s
UNIX_TIMESTAMP(x) uint64 uint64 unix_time = fields[n].GetUInt64();

* %UI64FMT does not work with acore_string

// world database query                           0      1      2      3        4
QueryResult result = WorldDatabase.Query("SELECT guid, entry, name, period, ScriptName FROM transports");
do
{
    Field* fields    = result->Fetch();
    uint32 lowguid   = fields[0].GetUInt32();
    uint32 entry     = fields[1].GetUInt32();
    std::string name = fields[2].GetString();
    uint32 period    = fields[3].GetUInt32();
    uint32 scriptId  = sObjectMgr->GetScriptId(fields[4].GetCString());

    // ...
}
while (result->NextRow());