void SqlPlainPreparedStatement::bind( const SqlStmtParameters& holder ) { //verify if we bound all needed input parameters if(m_nParams != holder.boundParams()) { MANGOS_ASSERT(false); return; } //reset resulting plain SQL request m_szPlainRequest = m_szFmt; size_t nLastPos = 0; SqlStmtParameters::ParameterContainer const& _args = holder.params(); SqlStmtParameters::ParameterContainer::const_iterator iter_last = _args.end(); for (SqlStmtParameters::ParameterContainer::const_iterator iter = _args.begin(); iter != iter_last; ++iter) { //bind parameter const SqlStmtFieldData& data = (*iter); std::ostringstream fmt; DataToString(data, fmt); nLastPos = m_szPlainRequest.find('?', nLastPos); if(nLastPos != std::string::npos) { std::string tmp = fmt.str(); m_szPlainRequest.replace(nLastPos, 1, tmp); nLastPos += tmp.length(); } } }
String ConvertToString(const DataType& val) { return DataToString(val); }