Index: FStatement.cxx =================================================================== RCS file: /cvs/dba/connectivity/source/drivers/file/FStatement.cxx,v retrieving revision 1.31.28.1 diff -u -r1.31.28.1 FStatement.cxx --- FStatement.cxx 28 Jun 2004 13:54:18 -0000 1.31.28.1 +++ FStatement.cxx 19 Jul 2004 14:57:48 -0000 @@ -587,6 +587,26 @@ m_pEvaluationKeySet = m_pSQLAnalyzer->bindEvaluationRow(m_aEvaluateRow); // Werte im Code des Compilers setzen _pResult->setEvaluationKeySet(m_pEvaluationKeySet); } +namespace +{ + struct ConvertStringAndInsert : public ::std::unary_function< ::rtl::OUString, void > + { + private: + back_insert_iterator< ::std::vector< String > > m_aInserter; + + public: + ConvertStringAndInsert( back_insert_iterator< ::std::vector< String > > _rInserter ) : m_aInserter( _rInserter ) { } + + void operator()( const ::rtl::OUString& _rToConvert ) + { + // implicit conversion to String, and insertion + *m_aInserter = _rToConvert; + // use *m_aInserter = String( rToConvert ); if the implicit conversion + // does not work. + } + }; +} + // ----------------------------------------------------------------------------- void OStatement_Base::GetAssignValues() { @@ -624,7 +644,11 @@ const Sequence< ::rtl::OUString>& aNames = m_xColNames->getElementNames(); const ::rtl::OUString* pBegin = aNames.getConstArray(); const ::rtl::OUString* pEnd = pBegin + aNames.getLength(); - aColumnNameList.insert(aColumnNameList.begin(), pBegin, pEnd); + ::std::for_each( + pBegin, + pEnd, + ConvertStringAndInsert( ::std::back_insert_iterator< ::std::vector< String > >( aColumnNameList ) ) + ); } else {