User: rt Date: 2008-01-30 07:48:05+0000 Modified: dba/connectivity/source/commontools/dbtools.cxx
Log: INTEGRATION: CWS dba24d (1.68.54); FILE MERGED 2007/12/01 13:36:21 fs 1.68.54.4: RESYNC: (1.68-1.70); FILE MERGED 2007/11/19 10:55:43 fs 1.68.54.3: copying the changes from CWS reportdesign01 herein 2007/11/15 10:01:37 fs 1.68.54.2: #i81658# +createUniqueName taking a string sequence 2007/11/06 09:07:50 oj 1.68.54.1: #i51965# impl updateNumericObject and setObjectWithInfo File Changes: Directory: /dba/connectivity/source/commontools/ ================================================ File [changed]: dbtools.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/commontools/dbtools.cxx?r1=1.70&r2=1.71 Delta lines: +33 -12 --------------------- --- dbtools.cxx 2007-11-21 14:59:13+0000 1.70 +++ dbtools.cxx 2008-01-30 07:48:03+0000 1.71 @@ -1426,25 +1426,42 @@ } return nSearchFlag; } + // ----------------------------------------------------------------------------- -::rtl::OUString createUniqueName(const Reference<XNameAccess>& _rxContainer,const ::rtl::OUString& _rBaseName,sal_Bool _bStartWithNumber) +::rtl::OUString createUniqueName( const Sequence< ::rtl::OUString >& _rNames, const ::rtl::OUString& _rBaseName, sal_Bool _bStartWithNumber ) { - ::rtl::OUString sName(_rBaseName); + ::std::set< ::rtl::OUString > aUsedNames; + ::std::copy( + _rNames.getConstArray(), + _rNames.getConstArray() + _rNames.getLength(), + ::std::insert_iterator< ::std::set< ::rtl::OUString > >( aUsedNames, aUsedNames.end() ) + ); + + ::rtl::OUString sName( _rBaseName ); sal_Int32 nPos = 1; if ( _bStartWithNumber ) - sName += ::rtl::OUString::valueOf(nPos); + sName += ::rtl::OUString::valueOf( nPos ); - OSL_ENSURE( _rxContainer.is() ,"No valid container!"); - if ( _rxContainer.is() ) - { - while(_rxContainer->hasByName(sName)) + while ( aUsedNames.find( sName ) != aUsedNames.end() ) { sName = _rBaseName; - sName += ::rtl::OUString::valueOf(++nPos); - } + sName += ::rtl::OUString::valueOf( ++nPos ); } return sName; } + +// ----------------------------------------------------------------------------- +::rtl::OUString createUniqueName(const Reference<XNameAccess>& _rxContainer,const ::rtl::OUString& _rBaseName,sal_Bool _bStartWithNumber) +{ + Sequence< ::rtl::OUString > aElementNames; + + OSL_ENSURE( _rxContainer.is(), "createUniqueName: invalid container!" ); + if ( _rxContainer.is() ) + aElementNames = _rxContainer->getElementNames(); + + return createUniqueName( aElementNames, _rBaseName, _bStartWithNumber ); +} + // ----------------------------------------------------------------------------- void showError(const SQLExceptionInfo& _rInfo, const Reference< XWindow>& _xParent, @@ -1779,10 +1796,14 @@ { switch(sqlType) { - case DataType::CHAR: - case DataType::VARCHAR: case DataType::DECIMAL: case DataType::NUMERIC: + _xParams->setObjectWithInfo(parameterIndex,x,sqlType,0); + break; + case DataType::CHAR: + case DataType::VARCHAR: + //case DataType::DECIMAL: + //case DataType::NUMERIC: case DataType::LONGVARCHAR: _xParams->setString(parameterIndex,::comphelper::getString(x)); break; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
