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]

Reply via email to