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]

Reply via email to