Tag: cws_src680_dba24d
User: oj      
Date: 2007-11-06 09:19:40+0000
Modified:
   dba/dbaccess/source/core/api/BookmarkSet.cxx
   dba/dbaccess/source/core/api/CacheSet.cxx
   dba/dbaccess/source/core/api/CacheSet.hxx
   dba/dbaccess/source/core/api/KeySet.cxx
   dba/dbaccess/source/core/api/KeySet.hxx

Log:
 #i51965# use scale for update

File Changes:

Directory: /dba/dbaccess/source/core/api/
=========================================

File [changed]: BookmarkSet.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/BookmarkSet.cxx?r1=1.19&r2=1.19.170.1
Delta lines:  +9 -5
-------------------
--- BookmarkSet.cxx     2006-09-17 06:29:28+0000        1.19
+++ BookmarkSet.cxx     2007-11-06 09:19:38+0000        1.19.170.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: BookmarkSet.cxx,v $
  *
- *  $Revision: 1.19 $
+ *  $Revision: 1.19.170.1 $
  *
- *  last change: $Author: obo $ $Date: 2006/09/17 06:29:28 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:19:38 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -197,10 +197,14 @@
 
                        switch(_rValue.getTypeKind())
                        {
-                               case DataType::CHAR:
-                               case DataType::VARCHAR:
                                case DataType::DECIMAL:
                                case DataType::NUMERIC:
+                    
_xParameter->updateNumericObject(nPos,_rValue.makeAny(),m_xSetMetaData->getScale(nPos));
+                    break;
+                               case DataType::CHAR:
+                               case DataType::VARCHAR:
+                               //case DataType::DECIMAL:
+                               //case DataType::NUMERIC:
                                        _xParameter->updateString(nPos,_rValue);
                                        break;
                                case DataType::BIGINT:

File [changed]: CacheSet.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/CacheSet.cxx?r1=1.43&r2=1.43.170.1
Delta lines:  +14 -12
---------------------
--- CacheSet.cxx        2006-09-17 06:31:05+0000        1.43
+++ CacheSet.cxx        2007-11-06 09:19:38+0000        1.43.170.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: CacheSet.cxx,v $
  *
- *  $Revision: 1.43 $
+ *  $Revision: 1.43.170.1 $
  *
- *  last change: $Author: obo $ $Date: 2006/09/17 06:31:05 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:19:38 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -231,7 +231,7 @@
                        if(aIter->isNull())
                                xParameter->setNull(i,aIter->getTypeKind());
                        else
-                               setParameter(i,xParameter,*aIter);
+                               
setParameter(i,xParameter,*aIter,m_xSetMetaData->getColumnType(i),m_xSetMetaData->getScale(i));
                }
 
                m_bInserted = xPrep->executeUpdate() > 0;
@@ -392,11 +392,11 @@
        for(ORowVector< ORowSetValue >::const_iterator aIter = 
_rInsertRow->begin()+1; aIter != _rInsertRow->end();++aIter)
        {
                if(aIter->isModified())
-                       setParameter(i++,xParameter,*aIter);
+                       
setParameter(i++,xParameter,*aIter,m_xSetMetaData->getColumnType(i),m_xSetMetaData->getScale(i));
        }
        for(::std::list< sal_Int32>::const_iterator aOrgValue = 
aOrgValues.begin(); aOrgValue != aOrgValues.end();++aOrgValue,++i)
        {
-               setParameter(i,xParameter,(*_rOrginalRow)[*aOrgValue]);
+               
setParameter(i,xParameter,(*_rOrginalRow)[*aOrgValue],m_xSetMetaData->getColumnType(i),m_xSetMetaData->getScale(i));
        }
 
        m_bUpdated = xPrep->executeUpdate() > 0;
@@ -457,7 +457,7 @@
        {
                for(sal_Int32 j=0;j<xIndexes->getCount();++j)
                {
-                       
::cppu::extractInterface(xIndexColsSup,xIndexes->getByIndex(j));
+            xIndexColsSup.set(xIndexes->getByIndex(j),UNO_QUERY);
                        if(     xIndexColsSup.is()
                                && 
comphelper::getBOOL(xIndexColsSup->getPropertyValue(PROPERTY_ISUNIQUE))
                                && 
!comphelper::getBOOL(xIndexColsSup->getPropertyValue(PROPERTY_ISPRIMARYKEYINDEX))
@@ -478,7 +478,7 @@
        sal_Int32 i = 1;
        for(::std::list< sal_Int32>::const_iterator j = aOrgValues.begin(); j 
!= aOrgValues.end();++j,++i)
        {
-               setParameter(i,xParameter,(*_rDeleteRow)[*j]);
+               
setParameter(i,xParameter,(*_rDeleteRow)[*j],m_xSetMetaData->getColumnType(i),m_xSetMetaData->getScale(i));
        }
 
        m_bDeleted = xPrep->executeUpdate() > 0;
@@ -487,8 +487,8 @@
 void OCacheSet::setParameter(sal_Int32 nPos
                                                         ,Reference< 
XParameters > _xParameter
                                                         ,const ORowSetValue& 
_rValue
-// OJ->OBO: must be removed                                                    
 ,sal_Bool _bSigned
-                                                        ,sal_Int32 _nType)
+                                                        ,sal_Int32 _nType
+                             ,sal_Int32 _nScale)
 {
        sal_Int32 nType = ( _nType != DataType::OTHER ) ? _nType : 
_rValue.getTypeKind();
        if(!_rValue.isNull())
@@ -496,10 +496,12 @@
                
                switch(nType)
                {
-                       case DataType::CHAR:
-                       case DataType::VARCHAR:
                        case DataType::DECIMAL:
                        case DataType::NUMERIC:
+                
_xParameter->setObjectWithInfo(nPos,_rValue.makeAny(),nType,_nScale);
+                break;
+                       case DataType::CHAR:
+                       case DataType::VARCHAR:
                        case DataType::LONGVARCHAR:
                                _xParameter->setString(nPos,_rValue);
                                break;

File [changed]: CacheSet.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/CacheSet.hxx?r1=1.19&r2=1.19.220.1
Delta lines:  +5 -4
-------------------
--- CacheSet.hxx        2006-06-20 02:34:41+0000        1.19
+++ CacheSet.hxx        2007-11-06 09:19:38+0000        1.19.220.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: CacheSet.hxx,v $
  *
- *  $Revision: 1.19 $
+ *  $Revision: 1.19.220.1 $
  *
- *  last change: $Author: hr $ $Date: 2006/06/20 02:34:41 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:19:38 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -96,7 +96,8 @@
                void setParameter(sal_Int32 nPos
                                                        
,::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XParameters > 
_xParameter
                                                        ,const 
connectivity::ORowSetValue& _rValue
-                                                       ,sal_Int32 _nType = 
::com::sun::star::sdbc::DataType::OTHER
+                                                       ,sal_Int32 _nType
+                            ,sal_Int32 _nScale
                                                        );
                void fillParameters( const ORowSetRow& _rRow
                                                        ,const 
connectivity::OSQLTable& _xTable 

File [changed]: KeySet.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/KeySet.cxx?r1=1.67&r2=1.67.136.1
Delta lines:  +17 -15
---------------------
--- KeySet.cxx  2006-11-21 17:15:22+0000        1.67
+++ KeySet.cxx  2007-11-06 09:19:38+0000        1.67.136.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: KeySet.cxx,v $
  *
- *  $Revision: 1.67 $
+ *  $Revision: 1.67.136.1 $
  *
- *  last change: $Author: vg $ $Date: 2006/11/21 17:15:22 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:19:38 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -405,9 +405,10 @@
                if(m_aKeyIter != m_aKeyMap.end())
                {
                        connectivity::ORowVector< ORowSetValue >::iterator 
aKeyIter = m_aKeyIter->second.first->begin();
-                       for(sal_uInt16 j = 0;aKeyIter != 
m_aKeyIter->second.first->end();++aKeyIter,++j)
+            SelectColumnsMetaData::const_iterator aPosIter = 
(*m_pKeyColumnNames).begin();
+                       for(sal_uInt16 j = 0;aKeyIter != 
m_aKeyIter->second.first->end();++aKeyIter,++j,++aPosIter)
                        {
-                               setParameter(i++,xParameter,*aKeyIter);
+                               
setParameter(i++,xParameter,*aKeyIter,aPosIter->second.nType,aPosIter->second.nScale);
                        }
                }
        }
@@ -547,12 +548,11 @@
        sal_uInt16 j = 0;
        for(;aIter != m_pColumnNames->end();++aIter,++j)
        {
-
                sal_Int32 nPos = aIter->second.nPosition;
                if((*_rInsertRow)[nPos].isModified())
                {
                        
(*_rInsertRow)[nPos].setSigned((*_rOrginalRow)[nPos].isSigned());
-                       
setParameter(i++,xParameter,(*_rInsertRow)[nPos],aIter->second.nType);
+                       
setParameter(i++,xParameter,(*_rInsertRow)[nPos],aIter->second.nType,aIter->second.nScale);
                }
        }
        // and then the values of the where condition
@@ -560,7 +560,7 @@
        j = 0;
        for(;aIter != (*m_pKeyColumnNames).end();++aIter,++i,++j)
        {
-               
setParameter(i,xParameter,(*_rOrginalRow)[aIter->second.nPosition],aIter->second.nType);
+               
setParameter(i,xParameter,(*_rOrginalRow)[aIter->second.nPosition],aIter->second.nType,aIter->second.nScale);
        }
 
        // now we have to set the index values
@@ -568,7 +568,7 @@
        j = 0;
        for(;aIdxColIter != aIndexColumnPositions.end();++aIdxColIter,++i,++j)
        {
-               
setParameter(i,xParameter,(*_rOrginalRow)[*aIdxColIter],(*_rOrginalRow)[*aIdxColIter].getTypeKind());
+               
setParameter(i,xParameter,(*_rOrginalRow)[*aIdxColIter],(*_rOrginalRow)[*aIdxColIter].getTypeKind(),aIter->second.nScale);
        }
 
        m_bUpdated = xPrep->executeUpdate() > 0;
@@ -632,7 +632,7 @@
                        else
                        {
                                
(*_rInsertRow)[nPos].setSigned(m_aSignedFlags[nPos-1]);
-                               
setParameter(i++,xParameter,(*_rInsertRow)[nPos],aPosIter->second.nType);
+                               
setParameter(i++,xParameter,(*_rInsertRow)[nPos],aPosIter->second.nType,aPosIter->second.nScale);
                        }
                }
        }
@@ -835,14 +835,14 @@
        i = 1;
        for(;aIter != (*m_pKeyColumnNames).end();++aIter,++i)
        {
-               
setParameter(i,xParameter,(*_rDeleteRow)[aIter->second.nPosition],aIter->second.nType);
+               
setParameter(i,xParameter,(*_rDeleteRow)[aIter->second.nPosition],aIter->second.nType,aIter->second.nScale);
        }
 
        // now we have to set the index values
        ::std::vector<sal_Int32>::iterator aIdxColIter = 
aIndexColumnPositions.begin();
        for(;aIdxColIter != aIndexColumnPositions.end();++aIdxColIter,++i)
        {
-               
setParameter(i,xParameter,(*_rDeleteRow)[*aIdxColIter],(*_rDeleteRow)[*aIdxColIter].getTypeKind());
+               
setParameter(i,xParameter,(*_rDeleteRow)[*aIdxColIter],(*_rDeleteRow)[*aIdxColIter].getTypeKind(),aIter->second.nScale);
        }
 
        m_bDeleted = xPrep->executeUpdate() > 0;
@@ -1073,10 +1073,10 @@
        connectivity::ORowVector< ORowSetValue >::const_iterator aIter = 
m_aKeyIter->second.first->begin();
        SelectColumnsMetaData::const_iterator aPosIter = 
(*m_pKeyColumnNames).begin();
        for(;aPosIter != (*m_pKeyColumnNames).end();++aPosIter,++aIter,++nPos)
-               setParameter(nPos,xParameter,*aIter);
+               
setParameter(nPos,xParameter,*aIter,aPosIter->second.nType,aPosIter->second.nScale);
        aPosIter = (*m_pForeignColumnNames).begin();
        for(;aPosIter != 
(*m_pForeignColumnNames).end();++aPosIter,++aIter,++nPos)
-               setParameter(nPos,xParameter,*aIter);
+               
setParameter(nPos,xParameter,*aIter,aPosIter->second.nType,aPosIter->second.nScale);
 
        m_xSet = m_xStatement->executeQuery();
        OSL_ENSURE(m_xSet.is(),"No resultset form statement!");
@@ -1328,11 +1328,13 @@
                                {
                                        sal_Int32 nType = 0;
                                        
xColumnProp->getPropertyValue(PROPERTY_TYPE)    >>= nType;
+                    sal_Int32 nScale = 0;
+                    xColumnProp->getPropertyValue(PROPERTY_SCALE)      >>= 
nScale;
                     ::rtl::OUString sColumnDefault;
                     if ( 
xColumnProp->getPropertySetInfo()->hasPropertyByName(PROPERTY_DEFAULTVALUE) )
                         xColumnProp->getPropertyValue(PROPERTY_DEFAULTVALUE) 
>>= sColumnDefault;
 
-                    _rColumnNames[sRealName] = SelectColumnDescription( nPos, 
nType, sColumnDefault );
+                    _rColumnNames[sRealName] = SelectColumnDescription( nPos, 
nType,nScale, sColumnDefault );
                                        break;
                                }
                        }

File [changed]: KeySet.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/KeySet.hxx?r1=1.27&r2=1.27.180.1
Delta lines:  +8 -4
-------------------
--- KeySet.hxx  2006-08-15 10:41:20+0000        1.27
+++ KeySet.hxx  2007-11-06 09:19:38+0000        1.27.180.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: KeySet.hxx,v $
  *
- *  $Revision: 1.27 $
+ *  $Revision: 1.27.180.1 $
  *
- *  last change: $Author: hr $ $Date: 2006/08/15 10:41:20 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:19:38 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -61,18 +61,22 @@
     {
         sal_Int32       nPosition;
         sal_Int32       nType;
+        sal_Int32       nScale;
+
         ::rtl::OUString sDefaultValue;
 
         SelectColumnDescription()
             :nPosition( 0 )
             ,nType( 0 )
+            ,nScale( 0 )
             ,sDefaultValue()
         {
         }
 
-        SelectColumnDescription( sal_Int32 _nPosition, sal_Int32 _nType, const 
::rtl::OUString& _rDefaultValue )
+        SelectColumnDescription( sal_Int32 _nPosition, sal_Int32 _nType, 
sal_Int32 _nScale, const ::rtl::OUString& _rDefaultValue )
             :nPosition( _nPosition )
             ,nType( _nType )
+            ,nScale( _nScale )
             ,sDefaultValue( _rDefaultValue )
         {
         }




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to