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]
