예제 #1
0
파일: DatabaseMysql.cpp 프로젝트: gc/mangos
void MySqlPreparedStatement::addParam( int nIndex, const SqlStmtFieldData& data )
{
    MANGOS_ASSERT(m_pInputArgs);
    MANGOS_ASSERT(nIndex < m_nParams);

    MYSQL_BIND& pData = m_pInputArgs[nIndex];

    my_bool bUnsigned = 0;
    enum_field_types dataType = ToMySQLType(data, bUnsigned);

    //setup MYSQL_BIND structure
    pData.buffer_type = dataType;
    pData.is_unsigned = bUnsigned;
    pData.buffer = data.buff();
    pData.length = 0;
    pData.buffer_length = data.type() == FIELD_STRING ? data.size() : 0;
}
예제 #2
0
void MySqlPreparedStatement::addParam( size_t nIndex, const SqlStmtField& data )
{
	poco_assert(_myArgs.size() == _numParams);
	poco_assert(nIndex < _numParams);

	MYSQL_BIND& pData = _myArgs[nIndex];

	//setup MYSQL_BIND structure
	{
		auto typeInfo = ToMySQLType(data);
		pData.buffer_type = typeInfo.first;
		pData.is_unsigned = typeInfo.second;
	}
	pData.buffer = const_cast<void*>(data.buff());
	pData.length = nullptr;
	pData.buffer_length = data.size();
	pData.is_null = nullptr;
	pData.error = nullptr;
}