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(); } } }
void MySqlPreparedStatement::bind( const SqlStmtParameters& holder ) { poco_assert(isPrepared()); poco_assert(_myArgs.size() == _numParams); //finalize adding params if (_myArgs.size() < 1) return; //verify if we bound all needed input parameters if(_numParams != holder.boundParams()) { poco_bugcheck_msg("Not all parameters bound in MySqlPreparedStatement"); return; } size_t nIndex = 0; const SqlStmtParameters::ParameterContainer& holderArgs = holder.params(); for (auto it = holderArgs.begin(); it!=holderArgs.end(); ++it) { //bind parameter addParam(nIndex++, (*it)); } //bind input arguments if(mysql_stmt_bind_param(_myStmt, &_myArgs[0])) poco_bugcheck_msg((string("mysql_stmt_bind_param() failed with ERROR ")+mysql_stmt_error(_myStmt)).c_str()); }
void MySqlPreparedStatement::bind( const SqlStmtParameters& holder ) { if(!isPrepared()) { MANGOS_ASSERT(false); return; } //finalize adding params if(!m_pInputArgs) return; //verify if we bound all needed input parameters if(m_nParams != holder.boundParams()) { MANGOS_ASSERT(false); return; } int nIndex = 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 addParam(nIndex++, (*iter)); } //bind input arguments if(mysql_stmt_bind_param(m_stmt, m_pInputArgs)) { sLog.outError("SQL ERROR: mysql_stmt_bind_param() failed\n"); sLog.outError("SQL ERROR: %s", mysql_stmt_error(m_stmt)); } }