MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / GetString

Method GetString

extensions/sqlite/driver/SqResults.cpp:218–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

216}
217
218DBResult SqResults::GetString(unsigned int columnId, const char **pString, size_t *_length)
219{
220 SqField *field = GetField(columnId);
221 if (!field)
222 {
223 return DBVal_Error;
224 }
225
226 DBResult res = DBVal_Data;
227 const char *ptr = NULL;
228 size_t length = 0;
229 if (field->type == SQLITE_TEXT || field->type == SQLITE_BLOB)
230 {
231 ptr = m_Strings.GetString(field->u.idx);
232 length = field->size;
233 } else if (field->type == SQLITE_INTEGER) {
234 char number[24];
235 field->size = UTIL_Format(number, sizeof(number), "%d", field->u.idx);
236 field->type = SQLITE_TEXT;
237 field->u.idx = m_Strings.AddString(number);
238 ptr = m_Strings.GetString(field->u.idx);
239 length = field->size;
240 } else if (field->type == SQLITE_FLOAT) {
241 char number[24];
242 field->size = UTIL_Format(number, sizeof(number), "%f", field->u.f);
243 field->type = SQLITE_TEXT;
244 field->u.idx = m_Strings.AddString(number);
245 ptr = m_Strings.GetString(field->u.idx);
246 length = field->size;
247 } else if (field->type == SQLITE_NULL) {
248 res = DBVal_Null;
249 }
250
251 if (!ptr)
252 {
253 ptr = "";
254 }
255
256 if (pString)
257 {
258 *pString = ptr;
259 }
260 if (_length)
261 {
262 *_length = length;
263 }
264
265 return res;
266}
267
268DBResult SqResults::CopyString(unsigned int columnId, char *buffer, size_t maxlength, size_t *written)
269{

Callers 3

CopyStringMethod · 0.45
GetFloatMethod · 0.45
GetIntMethod · 0.45

Calls 2

UTIL_FormatFunction · 0.50
AddStringMethod · 0.45

Tested by

no test coverage detected