User: hr Date: 06/04/19 06:16:27 Modified: /dba/connectivity/source/drivers/calc/ CTable.cxx
Log: INTEGRATION: CWS oj17 (1.24.78); FILE MERGED 2006/03/10 08:56:26 oj 1.24.78.1: #131099# check row length File Changes: Directory: /dba/connectivity/source/drivers/calc/ ================================================= File [changed]: CTable.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/calc/CTable.cxx?r1=1.25&r2=1.26 Delta lines: +54 -78 --------------------- --- CTable.cxx 7 Apr 2006 13:08:42 -0000 1.25 +++ CTable.cxx 19 Apr 2006 13:16:25 -0000 1.26 @@ -255,9 +255,7 @@ { CellRangeAddress aTotalRange = xAddr->getRangeAddress(); sal_Int32 nLastRow = aTotalRange.EndRow; - Reference<XCellRange> xRange = - xSheet->getCellRangeByPosition( nDocColumn, nDocRow, nDocColumn, nLastRow ); - Reference<XCellRangesQuery> xQuery( xRange, UNO_QUERY ); + Reference<XCellRangesQuery> xQuery( xSheet->getCellRangeByPosition( nDocColumn, nDocRow, nDocColumn, nLastRow ), UNO_QUERY ); if (xQuery.is()) { // queryIntersection to get a ranges object @@ -271,8 +269,7 @@ if ( xEnum.is() && xEnum->hasMoreElements() ) { // get first non-empty cell from enumeration - Any aCellAny = xEnum->nextElement(); - aCellAny >>= xCell; + xCell.set(xEnum->nextElement(),UNO_QUERY); } // otherwise, keep empty cell } @@ -293,8 +290,7 @@ if ( bHasHeaders ) { - Reference<XCell> xHeaderCell = xSheet->getCellByPosition( nDocColumn, nStartRow ); - Reference<XText> xHeaderText( xHeaderCell, UNO_QUERY ); + Reference<XText> xHeaderText( xSheet->getCellByPosition( nDocColumn, nStartRow ), UNO_QUERY ); if ( xHeaderText.is() ) rName = xHeaderText->getString(); } @@ -389,10 +385,7 @@ // no difference between empty cell and empty string in spreadsheet Reference<XText> xText( xCell, UNO_QUERY ); if ( xText.is() ) - { - ::rtl::OUString sVal = xText->getString(); - rValue = sVal; - } + rValue = xText->getString(); } break; case DataType::DECIMAL: @@ -606,8 +599,8 @@ Reference<XSpreadsheets> xSheets = xDoc->getSheets(); if ( xSheets.is() && xSheets->hasByName( _Name ) ) { - Any aAny = xSheets->getByName( _Name ); - if ( aAny >>= m_xSheet ) + m_xSheet.set(xSheets->getByName( _Name ),UNO_QUERY); + if ( m_xSheet.is() ) { lcl_GetDataArea( m_xSheet, m_nDataCols, m_nDataRows ); m_bHasHeaders = sal_True; @@ -619,16 +612,11 @@ Reference<XPropertySet> xDocProp( xDoc, UNO_QUERY ); if ( xDocProp.is() ) { - Any aRangesAny = xDocProp->getPropertyValue( ::rtl::OUString::createFromAscii("DatabaseRanges") ); - Reference<XDatabaseRanges> xRanges; - if ( aRangesAny >>= xRanges ) - { + Reference<XDatabaseRanges> xRanges(xDocProp->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DatabaseRanges")) ),UNO_QUERY); + if ( xRanges.is() && xRanges->hasByName( _Name ) ) { - Any aAny = xRanges->getByName( _Name ); - Reference<XDatabaseRange> xDBRange; - if ( aAny >>= xDBRange ) - { + Reference<XDatabaseRange> xDBRange(xRanges->getByName( _Name ),UNO_QUERY); Reference<XCellRangeReferrer> xRefer( xDBRange, UNO_QUERY ); if ( xRefer.is() ) { @@ -636,18 +624,12 @@ // Get flag from FilterDescriptor sal_Bool bRangeHeader = sal_True; - Reference<XSheetFilterDescriptor> xFilter = xDBRange->getFilterDescriptor(); - Reference<XPropertySet> xFiltProp( xFilter, UNO_QUERY ); + Reference<XPropertySet> xFiltProp( xDBRange->getFilterDescriptor(), UNO_QUERY ); if ( xFiltProp.is() ) - { - Any aHdrAny = xFiltProp->getPropertyValue( - ::rtl::OUString::createFromAscii("ContainsHeader") ); - aHdrAny >>= bRangeHeader; - } + xFiltProp->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ContainsHeader"))) >>= bRangeHeader; - Reference<XCellRange> xCellRange = xRefer->getReferredCells(); - Reference<XSheetCellRange> xSheetRange( xCellRange, UNO_QUERY ); - Reference<XCellRangeAddressable> xAddr( xCellRange, UNO_QUERY ); + Reference<XSheetCellRange> xSheetRange( xRefer->getReferredCells(), UNO_QUERY ); + Reference<XCellRangeAddressable> xAddr( xSheetRange, UNO_QUERY ); if ( xSheetRange.is() && xAddr.is() ) { m_xSheet = xSheetRange->getSpreadsheet(); @@ -655,15 +637,12 @@ m_nStartCol = aRangeAddr.StartColumn; m_nStartRow = aRangeAddr.StartRow; m_nDataCols = aRangeAddr.EndColumn - m_nStartCol + 1; - if ( bRangeHeader ) - { // m_nDataRows is excluding header row m_nDataRows = aRangeAddr.EndRow - m_nStartRow; - } - else + if ( !bRangeHeader ) { // m_nDataRows counts the whole range - m_nDataRows = aRangeAddr.EndRow - m_nStartRow + 1; + m_nDataRows += 1; } m_bHasHeaders = bRangeHeader; @@ -672,8 +651,6 @@ } } } - } - } Reference<XNumberFormatsSupplier> xSupp( xDoc, UNO_QUERY ); if (xSupp.is()) @@ -682,9 +659,8 @@ Reference<XPropertySet> xProp( xDoc, UNO_QUERY ); if (xProp.is()) { - Any aDateAny = xProp->getPropertyValue( ::rtl::OUString::createFromAscii("NullDate") ); ::com::sun::star::util::Date aDateStruct; - if ( aDateAny >>= aDateStruct ) + if ( xProp->getPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NullDate")) ) >>= aDateStruct ) m_aNullDate = ::Date( aDateStruct.Day, aDateStruct.Month, aDateStruct.Year ); } } @@ -702,7 +678,8 @@ TStringVector aVector; - for(OSQLColumns::const_iterator aIter = m_aColumns->begin();aIter != m_aColumns->end();++aIter) + OSQLColumns::const_iterator aEnd = m_aColumns->end(); + for(OSQLColumns::const_iterator aIter = m_aColumns->begin();aIter != aEnd;++aIter) aVector.push_back(Reference< XNamed>(*aIter,UNO_QUERY)->getName()); if(m_pColumns) @@ -880,22 +857,21 @@ // fields OSQLColumns::const_iterator aIter = _rCols.begin(); - for (sal_Int32 i = 1; aIter != _rCols.end();++aIter, i++) + OSQLColumns::const_iterator aEnd = _rCols.end(); + for (sal_Int32 i = 1; aIter != aEnd && i < _rRow->size();++aIter, i++) + { + if ( (*_rRow)[i]->isBound() ) { - Reference< XPropertySet> xColumn = *aIter; - -// ::rtl::OUString aName; -// xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME)) >>= aName; - sal_Int32 nType; - if(_bUseTableDefs) + if ( _bUseTableDefs ) nType = m_aTypes[i-1]; else - xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= nType; + (*aIter)->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= nType; + - if ((*_rRow)[i]->isBound()) lcl_SetValue( (*_rRow)[i]->get(), m_xSheet, m_nStartCol, m_nStartRow, m_bHasHeaders, m_aNullDate, m_nFilePos, i, nType ); + } } return sal_True; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
