MySQL types (C++)

MySQL types (C++)

Mapping from types used in SQL queries

MySQL type

Trinity type

Example code

Variable operators

bigint(20)

int64

int64 val = fields[n].GetInt64();

%I64d       (Capital i)

bigint(20) unsigned

uint64

uint64 val = fields[n].GetUInt64();

%I64u       (Capital i)

int(11)

int32

int32 val = fields[n].GetInt32();

%u

int(10) unsigned

uint32

uint32 val = fields[n].GetUInt32();

%u

mediumint(8)

int32

int32 val = fields[n].GetInt32();

%u

mediumint(8) unsigned

uint32

uint32 val = fields[n].GetUInt32();

%u

smallint(6)

int16

int16 val = fields[n].GetInt16();

 

smallint(5) unsigned

uint16

uint16 val = fields[n].GetUInt16();

 

tinyint(4)

int8

int16 val = fields[n].GetInt16();

 

tinyint(3) unsigned

uint8

uint8 val = fields[n].GetUInt8();

 

float

float

float val = fields[n].GetFloat();

 

float unsigned

 

double

double

double val = fields[n].GetDouble();

 

double unsigned

 

text

string (std::string)

or

cstring (char const*)

std::string text = fields[n].GetString();

char const* text = fields[n].GetCString();

%s

longtext

%s

tinytext

%s

char(k)

%s

varchar(k)

%s

blob

%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)

%u

SUM(x)

string (std::string)

or

cstring (char const*)

int sum;

if (const char* ch = fields[n].GetCString())

sum = atoi(ch);

%s

 

%s

UNIX_TIMESTAMP(x)

uint64

uint64 unix_time = fields[n].GetUInt64();

 

1* %UI64FMT does not work with trinity_string

 

 

Example
// 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());