void MySQLPreparedStatement::setFloat(const uint8 index, const float value) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; setValue(param, MYSQL_TYPE_FLOAT, &value, sizeof(float), (value > 0.0f)); }
void MySQLPreparedStatement::setDouble(const uint8 index, const double value) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; setValue(param, MYSQL_TYPE_DOUBLE, &value, sizeof(double), (value > 0.0f)); }
void MySQLPreparedStatement::setInt64(const uint8 index, const int64 value) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; setValue(param, MYSQL_TYPE_LONGLONG, &value, sizeof(int64), false); }
void MySQLPreparedStatement::setUInt16(const uint8 index, const uint16 value) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; setValue(param, MYSQL_TYPE_SHORT, &value, sizeof(uint16), true); }
void MySQLPreparedStatement::setNull(const uint8 index) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; param->buffer_type = MYSQL_TYPE_NULL; delete [] static_cast<char *>(param->buffer); param->buffer = NULL; param->buffer_length = 0; param->is_null_value = 1; delete param->length; param->length = NULL; }
void MySQLPreparedStatement::setString(const uint8 index, const char* value) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; size_t len = strlen(value) + 1; param->buffer_type = MYSQL_TYPE_VAR_STRING; delete[] static_cast<char *>(param->buffer); param->buffer = new char[len]; param->buffer_length = len; param->is_null_value = 0; param->length = new unsigned long(len - 1); memcpy(param->buffer, value, len); }
void MySQLPreparedStatement::setBinary(const uint8 index, const std::vector<uint8>& value, bool isString) { CheckValidIndex(index); m_paramsSet[index] = true; MYSQL_BIND* param = &m_bind[index]; uint32 len = uint32(value.size()); param->buffer_type = MYSQL_TYPE_BLOB; delete [] static_cast<char *>(param->buffer); param->buffer = new char[len]; param->buffer_length = len; param->is_null_value = 0; delete param->length; param->length = new unsigned long(len); if (isString) { *param->length -= 1; param->buffer_type = MYSQL_TYPE_VAR_STRING; } memcpy(param->buffer, value.data(), len); }