diff options
Diffstat (limited to 'dbaccess/source/ui/querydesign')
12 files changed, 216 insertions, 154 deletions
diff --git a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx index ecabea880895..bfe3213f2291 100644 --- a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx +++ b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx @@ -129,9 +129,10 @@ namespace dbaui nIndex = m_pLine->GetParent()->GetTabWinMap()->size(); const ::std::vector<OTableConnection*>* pVec = m_pLine->GetParent()->getTableConnections(); ::std::vector<OTableConnection*>::const_iterator aIter = pVec->begin(); - for (; aIter != pVec->end() && (*aIter) != m_pLine; ++nIndex,++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = pVec->end(); + for (; aIter != aEnd && (*aIter) != m_pLine; ++nIndex,++aIter) ; - nIndex = ( aIter != pVec->end() ) ? nIndex : -1; + nIndex = ( aIter != aEnd ) ? nIndex : -1; } return nIndex; } diff --git a/dbaccess/source/ui/querydesign/JoinController.cxx b/dbaccess/source/ui/querydesign/JoinController.cxx index d3f81d34d1d7..95531ed3bbaa 100644 --- a/dbaccess/source/ui/querydesign/JoinController.cxx +++ b/dbaccess/source/ui/querydesign/JoinController.cxx @@ -419,7 +419,8 @@ void OJoinController::SaveTabWinsPosSize( OJoinTableView::OTableWindowMap* pTabW "OJoinController::SaveTabWinsPosSize : inkonsistenter Zustand : sollte genausviel TabWinDatas haben wie TabWins !"); OJoinTableView::OTableWindowMap::iterator aIter = pTabWinList->begin(); - for(;aIter != pTabWinList->end();++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = pTabWinList->end(); + for(;aIter != aEnd;++aIter) SaveTabWinPosSize(aIter->second, nOffsetX, nOffsetY); } // ----------------------------------------------------------------------------- diff --git a/dbaccess/source/ui/querydesign/JoinExchange.cxx b/dbaccess/source/ui/querydesign/JoinExchange.cxx index 21edc112be38..4f80fdefab9c 100644 --- a/dbaccess/source/ui/querydesign/JoinExchange.cxx +++ b/dbaccess/source/ui/querydesign/JoinExchange.cxx @@ -92,8 +92,9 @@ namespace dbaui //------------------------------------------------------------------------ sal_Bool OJoinExchObj::isFormatAvailable( const DataFlavorExVector& _rFormats ,SotFormatStringId _nSlotID) { + DataFlavorExVector::const_iterator aCheckEnd = _rFormats.end(); for ( DataFlavorExVector::const_iterator aCheck = _rFormats.begin(); - aCheck != _rFormats.end(); + aCheck != aCheckEnd; ++aCheck ) { diff --git a/dbaccess/source/ui/querydesign/JoinTableView.cxx b/dbaccess/source/ui/querydesign/JoinTableView.cxx index 150e39f9545d..16f4990cb5b5 100644 --- a/dbaccess/source/ui/querydesign/JoinTableView.cxx +++ b/dbaccess/source/ui/querydesign/JoinTableView.cxx @@ -102,6 +102,7 @@ #endif #include <cppuhelper/exc_hlp.hxx> #include <tools/diagnose_ex.h> +#include <boost/bind.hpp> #include <algorithm> #include <functional> @@ -291,7 +292,8 @@ void OJoinTableView::Resize() return; OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) { OTableWindow* pCurrent = aIter->second; Point aPos(pCurrent->GetData()->GetPosition() - GetScrollOffset()); @@ -631,7 +633,8 @@ void OJoinTableView::SetDefaultTabWinPosSize( OTableWindow* pTabWin ) // Belegte Bereiche dieser Zeile pruefen OTableWindow* pOtherTabWin;// = GetTabWinMap()->First(); OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) { pOtherTabWin = aIter->second; Rectangle aOtherTabWinRect( pOtherTabWin->GetPosPixel(), pOtherTabWin->GetSizePixel() ); @@ -814,7 +817,8 @@ BOOL OJoinTableView::ScrollPane( long nDelta, BOOL bHoriz, BOOL bPaintScrollBars Point aPos; OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) { pTabWin = aIter->second; aPos = pTabWin->GetPosPixel(); @@ -954,7 +958,8 @@ void OJoinTableView::MouseButtonUp( const MouseEvent& rEvt ) DeselectConn(GetSelectedConn()); ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) + ::std::vector<OTableConnection*>::iterator aEnd = m_vTableConnection.end(); + for(;aIter != aEnd;++aIter) { if( (*aIter)->CheckHit(rEvt.GetPosPixel()) ) { @@ -1085,9 +1090,7 @@ void OJoinTableView::DrawConnections( const Rectangle& rRect ) DBG_CHKTHIS(OJoinTableView,NULL); ////////////////////////////////////////////////////////////////////// // Die Joins zeichnen - ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) - (*aIter)->Draw( rRect ); + ::std::for_each(m_vTableConnection.begin(),m_vTableConnection.end(),boost::bind( &OTableConnection::Draw, _1, boost::cref( rRect ))); // zum Schluss noch mal die selektierte ueber alle anderen drueber if (GetSelectedConn()) GetSelectedConn()->Draw( rRect ); @@ -1124,7 +1127,8 @@ void OJoinTableView::ClearAll() // und das selbe mit den Connections ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) + ::std::vector<OTableConnection*>::iterator aEnd = m_vTableConnection.end(); + for(;aIter != aEnd;++aIter) RemoveConnection( *aIter ,sal_True); m_vTableConnection.clear(); @@ -1325,7 +1329,8 @@ void OJoinTableView::Command(const CommandEvent& rEvt) const Point& aMousePos = rEvt.GetMousePosPixel(); ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) + ::std::vector<OTableConnection*>::iterator aEnd = m_vTableConnection.end(); + for(;aIter != aEnd;++aIter) { if( (*aIter)->CheckHit(aMousePos) ) { @@ -1355,7 +1360,8 @@ OTableConnection* OJoinTableView::GetTabConn(const OTableWindow* pLhs,const OTab BOOL bFoundStart = _rpFirstAfter ? FALSE : TRUE; ::std::vector<OTableConnection*>::const_iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = m_vTableConnection.end(); + for(;aIter != aEnd;++aIter) { OTableConnection* pData = *aIter; @@ -1437,7 +1443,8 @@ long OJoinTableView::PreNotify(NotifyEvent& rNEvt) BOOL bForward = !pKeyEvent->GetKeyCode().IsShift(); // is there an active tab win ? OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) if (aIter->second && aIter->second->HasChildPathFocus()) break; @@ -1569,7 +1576,8 @@ long OJoinTableView::PreNotify(NotifyEvent& rNEvt) if (pSearchFor) { OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) { if (aIter->second == pSearchFor) { @@ -1622,7 +1630,8 @@ void OJoinTableView::StateChanged( StateChangedType nType ) SetZoomedPointFont( aFont ); OTableWindowMapIterator aIter = m_aTableMap.begin(); - for(;aIter != m_aTableMap.end();++aIter) + OTableWindowMapIterator aEnd = m_aTableMap.end(); + for(;aIter != aEnd;++aIter) { aIter->second->SetZoom(GetZoom()); Size aSize(CalcZoom(aIter->second->GetSizePixel().Width()),CalcZoom(aIter->second->GetSizePixel().Height())); @@ -1643,7 +1652,8 @@ void OJoinTableView::HideTabWins() // working on a copy because the real list will be cleared in inner calls OTableWindowMap aCopy(*pTabWins); OTableWindowMap::iterator aIter = aCopy.begin(); - for(;aIter != aCopy.end();++aIter) + OTableWindowMap::iterator aEnd = aCopy.end(); + for(;aIter != aEnd;++aIter) RemoveTabWin(aIter->second); } @@ -1690,7 +1700,8 @@ void OJoinTableView::clearLayoutInformation() m_aTableMap.clear(); ::std::vector<OTableConnection*>::const_iterator aIter2 = m_vTableConnection.begin(); - for(;aIter2 != m_vTableConnection.end();++aIter2) + ::std::vector<OTableConnection*>::const_iterator aEnd2 = m_vTableConnection.end(); + for(;aIter2 != aEnd2;++aIter2) delete *aIter2; m_vTableConnection.clear(); diff --git a/dbaccess/source/ui/querydesign/QueryDesignView.cxx b/dbaccess/source/ui/querydesign/QueryDesignView.cxx index 30e3bd5cc5b8..d02fb11fe54c 100644 --- a/dbaccess/source/ui/querydesign/QueryDesignView.cxx +++ b/dbaccess/source/ui/querydesign/QueryDesignView.cxx @@ -464,34 +464,36 @@ namespace OConnectionLineDataVec* pLineDataList, OQueryTableConnectionData* pData) { - ::rtl::OUString aCondition; - if ( !_xConnection.is() ) - return aCondition; - - OConnectionLineDataVec::iterator aIter = pLineDataList->begin(); - try + ::rtl::OUStringBuffer aCondition; + if ( _xConnection.is() ) { - Reference< XDatabaseMetaData > xMetaData = _xConnection->getMetaData(); - ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); + OConnectionLineDataVec::iterator aIter = pLineDataList->begin(); + OConnectionLineDataVec::iterator aEnd = pLineDataList->end(); + try + { + const Reference< XDatabaseMetaData > xMetaData = _xConnection->getMetaData(); + const ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); + const ::rtl::OUString sEqual(RTL_CONSTASCII_USTRINGPARAM(" = ")); - for(;aIter != pLineDataList->end();++aIter) + for(;aIter != aEnd;++aIter) + { + OConnectionLineDataRef pLineData = *aIter; + if(aCondition.getLength()) + aCondition.append(C_AND); + aCondition.append(quoteTableAlias(sal_True,pData->GetAliasName(JTCS_FROM),aQuote)); + aCondition.append(::dbtools::quoteName(aQuote, pLineData->GetFieldName(JTCS_FROM) )); + aCondition.append(sEqual); + aCondition.append(quoteTableAlias(sal_True,pData->GetAliasName(JTCS_TO),aQuote)); + aCondition.append(::dbtools::quoteName(aQuote, pLineData->GetFieldName(JTCS_TO) )); + } + } + catch(SQLException&) { - OConnectionLineDataRef pLineData = *aIter; - if(aCondition.getLength()) - aCondition += C_AND; - aCondition += quoteTableAlias(sal_True,pData->GetAliasName(JTCS_FROM),aQuote); - aCondition += ::dbtools::quoteName(aQuote, pLineData->GetFieldName(JTCS_FROM) ); - aCondition += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" = ")); - aCondition += quoteTableAlias(sal_True,pData->GetAliasName(JTCS_TO),aQuote); - aCondition += ::dbtools::quoteName(aQuote, pLineData->GetFieldName(JTCS_TO) ); + OSL_ASSERT(!"Failure while building Join criteria!"); } } - catch(SQLException&) - { - OSL_ASSERT(!"Failure while building Join criteria!"); - } - return aCondition; + return aCondition.makeStringAndClear(); } //------------------------------------------------------------------------------ /** JoinCycle looks for a join cycle and append it to the string @@ -657,7 +659,8 @@ namespace // first search for the "to" window const ::std::vector<OTableConnection*>* pConnections = pEntryConn->GetParent()->getTableConnections(); ::std::vector<OTableConnection*>::const_iterator aIter = pConnections->begin(); - for(;aIter != pConnections->end();++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = pConnections->end(); + for(;aIter != aEnd;++aIter) { OQueryTableConnection* pNext = static_cast<OQueryTableConnection*>(*aIter); if(!pNext->IsVisited() && (pNext->GetSourceWin() == pEntryTabTo || pNext->GetDestWin() == pEntryTabTo)) @@ -671,11 +674,11 @@ namespace } // when nothing found found look for the "from" window - if(aIter == pConnections->end()) + if(aIter == aEnd) { OQueryTableWindow* pEntryTabFrom = static_cast<OQueryTableWindow*>(pEntryConn->GetSourceWin()); aIter = pConnections->begin(); - for(;aIter != pConnections->end();++aIter) + for(;aIter != aEnd;++aIter) { OQueryTableConnection* pNext = static_cast<OQueryTableConnection*>(*aIter); if(!pNext->IsVisited() && (pNext->GetSourceWin() == pEntryTabFrom || pNext->GetDestWin() == pEntryTabFrom)) @@ -746,12 +749,17 @@ namespace OTableFields& _rFieldList, sal_Bool bAlias) { - ::rtl::OUString aTmpStr,aFieldListStr; + Reference< XConnection> xConnection = static_cast<OQueryController&>(_pView->getController()).getConnection(); + if ( !xConnection.is() ) + return ::rtl::OUString(); + + ::rtl::OUStringBuffer aTmpStr,aFieldListStr; sal_Bool bAsterix = sal_False; int nVis = 0; OTableFields::iterator aIter = _rFieldList.begin(); - for(;aIter != _rFieldList.end();++aIter) + OTableFields::iterator aEnd = _rFieldList.end(); + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; if ( pEntryField->IsVisible() ) @@ -764,31 +772,28 @@ namespace if(nVis == 1) bAsterix = sal_False; - Reference< XConnection> xConnection = static_cast<OQueryController&>(_pView->getController()).getConnection(); - if(!xConnection.is()) - return aFieldListStr; - try { - Reference< XDatabaseMetaData > xMetaData = xConnection->getMetaData(); - ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); + const Reference< XDatabaseMetaData > xMetaData = xConnection->getMetaData(); + const ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); OJoinTableView::OTableWindowMap* pTabList = _pView->getTableView()->GetTabWinMap(); const static ::rtl::OUString sFieldSeparator(RTL_CONSTASCII_USTRINGPARAM(", ")); + const static ::rtl::OUString s_sAs(RTL_CONSTASCII_USTRINGPARAM(" AS ")); aIter = _rFieldList.begin(); - for(;aIter != _rFieldList.end();++aIter) + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; ::rtl::OUString rFieldName = pEntryField->GetField(); if ( rFieldName.getLength() && pEntryField->IsVisible() ) { aTmpStr = ::rtl::OUString(); - ::rtl::OUString rAlias = pEntryField->GetAlias(); - ::rtl::OUString rFieldAlias = pEntryField->GetFieldAlias(); + const ::rtl::OUString rAlias = pEntryField->GetAlias(); + const ::rtl::OUString rFieldAlias = pEntryField->GetFieldAlias(); - aTmpStr += quoteTableAlias((bAlias || bAsterix),rAlias,aQuote); + aTmpStr.append(quoteTableAlias((bAlias || bAsterix),rAlias,aQuote)); // if we have a none numeric field, the table alias could be in the name // otherwise we are not allowed to do this (e.g. 0.1 * PRICE ) @@ -798,8 +803,9 @@ namespace String sTemp = rFieldName; OTableFieldDescRef aInfo = new OTableFieldDesc(); OJoinTableView::OTableWindowMap::iterator tableIter = pTabList->begin(); + OJoinTableView::OTableWindowMap::iterator tableEnd = pTabList->end(); sal_Bool bFound = sal_False; - for(;!bFound && tableIter != pTabList->end() ;++tableIter) + for(;!bFound && tableIter != tableEnd ;++tableIter) { OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(tableIter->second); @@ -810,21 +816,21 @@ namespace if ( ( rFieldName.toChar() != '*' ) && ( rFieldName.indexOf( aQuote ) == -1 ) ) { OSL_ENSURE(pEntryField->GetTable().getLength(),"No table field name!"); - aTmpStr += ::dbtools::quoteName(aQuote, rFieldName); + aTmpStr.append(::dbtools::quoteName(aQuote, rFieldName)); } else - aTmpStr += rFieldName; + aTmpStr.append(rFieldName); } else - aTmpStr += rFieldName; + aTmpStr.append(rFieldName); if ( pEntryField->isAggreateFunction() ) { DBG_ASSERT(pEntryField->GetFunction().getLength(),"Functionname darf hier nicht leer sein! ;-("); - ::rtl::OUString aTmpStr2( pEntryField->GetFunction()); - aTmpStr2 += ::rtl::OUString('('); - aTmpStr2 += aTmpStr; - aTmpStr2 += ::rtl::OUString(')'); + ::rtl::OUStringBuffer aTmpStr2( pEntryField->GetFunction()); + aTmpStr2.appendAscii("("); + aTmpStr2.append(aTmpStr.makeStringAndClear()); + aTmpStr2.appendAscii(")"); aTmpStr = aTmpStr2; } @@ -833,26 +839,26 @@ namespace pEntryField->isNumericOrAggreateFunction() || pEntryField->isOtherFunction())) { - aTmpStr += ::rtl::OUString::createFromAscii(" AS "); - aTmpStr += ::dbtools::quoteName(aQuote, rFieldAlias); + aTmpStr.append(s_sAs); + aTmpStr.append(::dbtools::quoteName(aQuote, rFieldAlias)); } - aFieldListStr += aTmpStr; - aFieldListStr += sFieldSeparator; + aFieldListStr.append(aTmpStr.makeStringAndClear()); + aFieldListStr.append(sFieldSeparator); } } if(aFieldListStr.getLength()) - aFieldListStr = aFieldListStr.replaceAt(aFieldListStr.getLength()-2,2, ::rtl::OUString() ); + aFieldListStr.setLength(aFieldListStr.getLength()-2); } catch(SQLException&) { OSL_ASSERT(!"Failure while building select list!"); } - return aFieldListStr; + return aFieldListStr.makeStringAndClear(); } //------------------------------------------------------------------------------ sal_Bool GenerateCriterias( OQueryDesignView* _pView, - ::rtl::OUString& rRetStr, - ::rtl::OUString& rHavingStr, + ::rtl::OUStringBuffer& rRetStr, + ::rtl::OUStringBuffer& rHavingStr, OTableFields& _rFieldList, sal_Bool bMulti ) { @@ -863,7 +869,8 @@ namespace // Zeilenweise werden die Ausdr"ucke mit AND verknuepft sal_uInt16 nMaxCriteria = 0; OTableFields::iterator aIter = _rFieldList.begin(); - for(;aIter != _rFieldList.end();++aIter) + OTableFields::iterator aEnd = _rFieldList.end(); + for(;aIter != aEnd;++aIter) { nMaxCriteria = ::std::max<sal_uInt16>(nMaxCriteria,(sal_uInt16)(*aIter)->GetCriteria().size()); } @@ -872,15 +879,15 @@ namespace return FALSE; try { - Reference< XDatabaseMetaData > xMetaData = xConnection->getMetaData(); - ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); + const Reference< XDatabaseMetaData > xMetaData = xConnection->getMetaData(); + const ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); const IParseContext& rContext = static_cast<OQueryController&>(_pView->getController()).getParser().getContext(); for (sal_uInt16 i=0 ; i < nMaxCriteria ; i++) { aHavingStr = aWhereStr = ::rtl::OUString(); - for(aIter = _rFieldList.begin();aIter != _rFieldList.end();++aIter) + for(aIter = _rFieldList.begin();aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; aFieldName = pEntryField->GetField(); @@ -996,26 +1003,26 @@ namespace { aWhereStr += ::rtl::OUString(')'); // Klammern zu fuer 'AND' Zweig if (rRetStr.getLength()) // schon Feldbedingungen ? - rRetStr += C_OR; + rRetStr.append(C_OR); else // Klammern auf fuer 'OR' Zweig - rRetStr += ::rtl::OUString('('); - rRetStr += aWhereStr; + rRetStr.append(sal_Unicode('(')); + rRetStr.append(aWhereStr); } if (aHavingStr.getLength()) { aHavingStr += ::rtl::OUString(')'); // Klammern zu fuer 'AND' Zweig if (rHavingStr.getLength()) // schon Feldbedingungen ? - rHavingStr += C_OR; + rHavingStr.append(C_OR); else // Klammern auf fuer 'OR' Zweig - rHavingStr += ::rtl::OUString('('); - rHavingStr += aHavingStr; + rHavingStr.append(sal_Unicode('(')); + rHavingStr.append(aHavingStr); } } if (rRetStr.getLength()) - rRetStr += ::rtl::OUString(')'); // Klammern zu fuer 'OR' Zweig + rRetStr.append(sal_Unicode(')')); // Klammern zu fuer 'OR' Zweig if (rHavingStr.getLength()) - rHavingStr += ::rtl::OUString(')'); // Klammern zu fuer 'OR' Zweig + rHavingStr.append(sal_Unicode(')')); // Klammern zu fuer 'OR' Zweig } catch(SQLException&) { @@ -1046,8 +1053,8 @@ namespace // * darf keine Filter enthalten : habe ich die entsprechende Warnung schon angezeigt ? sal_Bool bCritsOnAsterikWarning = sal_False; // ** TMFS ** OTableFields::iterator aIter = _rFieldList.begin(); - - for(;aIter != _rFieldList.end();++aIter) + OTableFields::iterator aEnd = _rFieldList.end(); + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; EOrderDir eOrder = pEntryField->GetOrderDir(); @@ -1132,7 +1139,8 @@ namespace const ::std::vector<OTableConnection*>* _pConnList) { ::std::vector<OTableConnection*>::const_iterator aIter = _pConnList->begin(); - for(;aIter != _pConnList->end();++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = _pConnList->end(); + for(;aIter != aEnd;++aIter) { const OQueryTableConnection* pEntryConn = static_cast<const OQueryTableConnection*>(*aIter); OQueryTableConnectionData* pEntryConnData = static_cast<OQueryTableConnectionData*>(pEntryConn->GetData().get()); @@ -1175,12 +1183,13 @@ namespace if(!pConnList->empty()) { ::std::vector<OTableConnection*>::const_iterator aIter = pConnList->begin(); - for(;aIter != pConnList->end();++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = pConnList->end(); + for(;aIter != aEnd;++aIter) static_cast<OQueryTableConnection*>(*aIter)->SetVisited(sal_False); aIter = pConnList->begin(); - sal_Bool bUseEscape = ::dbtools::getBooleanDataSourceSetting( _xConnection, PROPERTY_OUTERJOINESCAPE ); - for(;aIter != pConnList->end();++aIter) + const sal_Bool bUseEscape = ::dbtools::getBooleanDataSourceSetting( _xConnection, PROPERTY_OUTERJOINESCAPE ); + for(;aIter != aEnd;++aIter) { OQueryTableConnection* pEntryConn = static_cast<OQueryTableConnection*>(*aIter); if(!pEntryConn->IsVisited()) @@ -1228,7 +1237,7 @@ namespace // and now all inner joins aIter = pConnList->begin(); - for(;aIter != pConnList->end();++aIter) + for(;aIter != aEnd;++aIter) { OQueryTableConnection* pEntryConn = static_cast<OQueryTableConnection*>(*aIter); if(!pEntryConn->IsVisited()) @@ -1247,7 +1256,8 @@ namespace } // all tables that haven't a connection to anyone OQueryTableView::OTableWindowMap::const_iterator aTabIter = pTabList->begin(); - for(;aTabIter != pTabList->end();++aTabIter) + OQueryTableView::OTableWindowMap::const_iterator aTabEnd = pTabList->end(); + for(;aTabIter != aTabEnd;++aTabIter) { const OQueryTableWindow* pEntryTab = static_cast<const OQueryTableWindow*>(aTabIter->second); if(!pEntryTab->ExistsAConn()) @@ -1278,7 +1288,8 @@ namespace const ::rtl::OUString aQuote = xMetaData->getIdentifierQuoteString(); OTableFields::iterator aIter = _rFieldList.begin(); - for(;aIter != _rFieldList.end();++aIter) + OTableFields::iterator aEnd = _rFieldList.end(); + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; if ( pEntryField->IsGroupBy() ) @@ -1644,7 +1655,8 @@ namespace { OJoinTableView::OTableWindowMap* pTabList = _pView->getTableView()->GetTabWinMap(); OJoinTableView::OTableWindowMap::iterator aIter = pTabList->begin(); - for(;aIter != pTabList->end();++aIter) + OJoinTableView::OTableWindowMap::iterator aTabEnd = pTabList->end(); + for(;aIter != aTabEnd;++aIter) { OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(aIter->second); if (pTabWin->ExistsField( ::rtl::OUString::createFromAscii("*"), aDragLeft )) @@ -1718,13 +1730,14 @@ namespace { OConnectionLineDataVec* pLineDataList = pConn->GetData()->GetConnLineDataList(); OConnectionLineDataVec::iterator aIter = pLineDataList->begin(); - for(;aIter != pLineDataList->end();++aIter) + OConnectionLineDataVec::iterator aEnd = pLineDataList->end(); + for(;aIter != aEnd;++aIter) { if((*aIter)->GetSourceFieldName() == aDragLeft->GetField() || (*aIter)->GetDestFieldName() == aDragLeft->GetField() ) break; } - if(aIter != pLineDataList->end()) + if(aIter != aEnd) return eOk; } } @@ -1853,7 +1866,8 @@ namespace OQueryTableWindow* lcl_findColumnInTables( const ::rtl::OUString& _rColumName, const OJoinTableView::OTableWindowMap& _rTabList, OTableFieldDescRef& _rInfo ) { OJoinTableView::OTableWindowMap::const_iterator aIter = _rTabList.begin(); - for ( ; aIter != _rTabList.end(); ++aIter ) + OJoinTableView::OTableWindowMap::const_iterator aEnd = _rTabList.end(); + for ( ; aIter != aEnd; ++aIter ) { OQueryTableWindow* pTabWin = static_cast< OQueryTableWindow* >( aIter->second ); if ( pTabWin && pTabWin->ExistsField( _rColumName, _rInfo ) ) @@ -2019,7 +2033,8 @@ namespace // now we have to insert the fields which aren't in the statement OQueryController& rController = static_cast<OQueryController&>(_pView->getController()); OTableFields& rUnUsedFields = rController.getUnUsedFields(); - for(OTableFields::iterator aIter = rUnUsedFields.begin();aIter != rUnUsedFields.end();++aIter) + OTableFields::iterator aEnd = rUnUsedFields.end(); + for(OTableFields::iterator aIter = rUnUsedFields.begin();aIter != aEnd;++aIter) if(_pSelectionBrw->InsertField(*aIter,BROWSER_INVALIDID,sal_False,sal_False).isValid()) (*aIter) = NULL; OTableFields().swap( rUnUsedFields ); @@ -2088,7 +2103,8 @@ namespace OQueryTableView* pTableView = static_cast<OQueryTableView*>(_pView->getTableView()); pTableView->clearLayoutInformation(); OSQLTables::const_iterator aIter = aMap.begin(); - for(;aIter != aMap.end();++aIter) + OSQLTables::const_iterator aEnd = aMap.end(); + for(;aIter != aEnd;++aIter) { OSQLTable xTable = aIter->second; Reference< XPropertySet > xTableProps( xTable, UNO_QUERY_THROW ); @@ -2132,7 +2148,8 @@ namespace // now delete the data for which we haven't any tablewindow OJoinTableView::OTableWindowMap aTableMap(*pTableView->GetTabWinMap()); OJoinTableView::OTableWindowMap::iterator aIterTableMap = aTableMap.begin(); - for(;aIterTableMap != aTableMap.end();++aIterTableMap) + OJoinTableView::OTableWindowMap::iterator aIterTableEnd = aTableMap.end(); + for(;aIterTableMap != aIterTableEnd;++aIterTableMap) { if(aMap.find(aIterTableMap->second->GetComposedName()) == aMap.end() && aMap.find(aIterTableMap->first) == aMap.end()) @@ -2191,7 +2208,8 @@ namespace sal_Bool bFirstField = sal_True; ::rtl::OUString sAsterix(RTL_CONSTASCII_USTRINGPARAM("*")); OJoinTableView::OTableWindowMap::iterator aIter = _pTabList->begin(); - for(;aIter != _pTabList->end() && eOk == eErrorCode ;++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = _pTabList->end(); + for(;aIter != aEnd && eOk == eErrorCode ;++aIter) { OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(aIter->second); OTableFieldDescRef aInfo = new OTableFieldDesc(); @@ -2319,7 +2337,8 @@ namespace if ( pParamRef && pParamRef->getTokenValue().toChar() == '*' ) { OJoinTableView::OTableWindowMap::iterator aIter = pTabList->begin(); - for(;aIter != pTabList->end();++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = pTabList->end(); + for(;aIter != aEnd;++aIter) { OQueryTableWindow* pTabWin = static_cast<OQueryTableWindow*>(aIter->second); if (pTabWin->ExistsField( ::rtl::OUString::createFromAscii("*"), aInfo )) @@ -2448,7 +2467,8 @@ namespace OTableFields& aList = rController.getTableFieldDesc(); OTableFields::iterator aIter = aList.begin(); - for(;aIter != aList.end();++aIter) + OTableFields::iterator aEnd = aList.end(); + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntry = *aIter; if(pEntry.isValid() && pEntry->GetFieldAlias() == aColumnName) @@ -2869,7 +2889,8 @@ void OQueryDesignView::fillValidFields(const ::rtl::OUString& sAliasName, ComboB ::rtl::OUString strCurrentPrefix; ::std::vector< ::rtl::OUString> aFields; OJoinTableView::OTableWindowMap::iterator aIter = pTabWins->begin(); - for(;aIter != pTabWins->end();++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = pTabWins->end(); + for(;aIter != aEnd;++aIter) { OQueryTableWindow* pCurrentWin = static_cast<OQueryTableWindow*>(aIter->second); if (bAllTables || (pCurrentWin->GetAliasName() == sAliasName)) @@ -2880,7 +2901,8 @@ void OQueryDesignView::fillValidFields(const ::rtl::OUString& sAliasName, ComboB pCurrentWin->EnumValidFields(aFields); ::std::vector< ::rtl::OUString>::iterator aStrIter = aFields.begin(); - for(;aStrIter != aFields.end();++aStrIter) + ::std::vector< ::rtl::OUString>::iterator aStrEnd = aFields.end(); + for(;aStrIter != aStrEnd;++aStrIter) { if (bAllTables || aStrIter->toChar() == '*') pFieldList->InsertEntry(::rtl::OUString(strCurrentPrefix) += *aStrIter); @@ -2942,7 +2964,8 @@ sal_Bool OQueryDesignView::checkStatement() sal_uInt32 nFieldcount = 0; OTableFields& rFieldList = rController.getTableFieldDesc(); OTableFields::iterator aIter = rFieldList.begin(); - for(;aIter != rFieldList.end();++aIter) + OTableFields::iterator aEnd = rFieldList.end(); + for(;aIter != aEnd;++aIter) { OTableFieldDescRef pEntryField = *aIter; if ( pEntryField->GetField().getLength() && pEntryField->IsVisible() ) @@ -2979,7 +3002,7 @@ sal_Bool OQueryDesignView::checkStatement() // wenn es Felder gibt, koennen die nur durch Einfuegen aus einer schon existenten Tabelle entstanden sein; wenn andererseits // eine Tabelle geloescht wird, verschwinden auch die zugehoerigen Felder -> ergo KANN es das nicht geben, dass Felder // existieren, aber keine Tabellen (und aFieldListStr hat schon eine Laenge, das stelle ich oben sicher) - ::rtl::OUString aHavingStr,aCriteriaListStr; + ::rtl::OUStringBuffer aHavingStr,aCriteriaListStr; // ----------------- Kriterien aufbauen ---------------------- if (!GenerateCriterias(this,aCriteriaListStr,aHavingStr,rFieldList, nTabcount > 1)) return ::rtl::OUString(); @@ -2994,22 +3017,22 @@ sal_Bool OQueryDesignView::checkStatement() if(aCriteriaListStr.getLength()) { aTmp += C_AND; - aTmp += aCriteriaListStr; + aTmp += aCriteriaListStr.makeStringAndClear(); } aCriteriaListStr = aTmp; } // ----------------- Statement aufbauen ---------------------- - ::rtl::OUString aSqlCmd(::rtl::OUString::createFromAscii("SELECT ")); + ::rtl::OUStringBuffer aSqlCmd(::rtl::OUString::createFromAscii("SELECT ")); if(static_cast<OQueryController&>(getController()).isDistinct()) - aSqlCmd += ::rtl::OUString::createFromAscii(" DISTINCT "); - aSqlCmd += aFieldListStr; - aSqlCmd += ::rtl::OUString::createFromAscii(" FROM "); - aSqlCmd += aTableListStr; + aSqlCmd.append(::rtl::OUString::createFromAscii(" DISTINCT ")); + aSqlCmd.append(aFieldListStr); + aSqlCmd.append(::rtl::OUString::createFromAscii(" FROM ")); + aSqlCmd.append(aTableListStr); if (aCriteriaListStr.getLength()) { - aSqlCmd += ::rtl::OUString::createFromAscii(" WHERE "); - aSqlCmd += aCriteriaListStr; + aSqlCmd.append(::rtl::OUString::createFromAscii(" WHERE ")); + aSqlCmd.append(aCriteriaListStr.makeStringAndClear()); } // ----------------- GroupBy aufbauen und Anh"angen ------------ Reference<XDatabaseMetaData> xMeta; @@ -3019,18 +3042,18 @@ sal_Bool OQueryDesignView::checkStatement() if ( xMeta.is() ) bUseAlias = bUseAlias || !xMeta->supportsGroupByUnrelated(); - aSqlCmd += GenerateGroupBy(this,rFieldList,bUseAlias); + aSqlCmd.append(GenerateGroupBy(this,rFieldList,bUseAlias)); // ----------------- having Anh"angen ------------ if(aHavingStr.getLength()) { - aSqlCmd += ::rtl::OUString::createFromAscii(" HAVING "); - aSqlCmd += aHavingStr; + aSqlCmd.append(::rtl::OUString::createFromAscii(" HAVING ")); + aSqlCmd.append(aHavingStr.makeStringAndClear()); } // ----------------- Sortierung aufbauen und Anh"angen ------------ ::rtl::OUString sOrder; SqlParseError eErrorCode = eOk; if ( (eErrorCode = GenerateOrder(this,rFieldList,nTabcount > 1,sOrder)) == eOk) - aSqlCmd += sOrder; + aSqlCmd.append(sOrder); else { if ( !m_rController.hasError() ) @@ -3039,11 +3062,12 @@ sal_Bool OQueryDesignView::checkStatement() m_rController.displayError(); } + ::rtl::OUString sSQL = aSqlCmd.makeStringAndClear(); if ( xConnection.is() ) { ::connectivity::OSQLParser& rParser( rController.getParser() ); ::rtl::OUString sErrorMessage; - ::std::auto_ptr<OSQLParseNode> pParseNode( rParser.parseTree( sErrorMessage, aSqlCmd, sal_True ) ); + ::std::auto_ptr<OSQLParseNode> pParseNode( rParser.parseTree( sErrorMessage, sSQL, sal_True ) ); if ( pParseNode.get() ) { OSQLParseNode* pNode = pParseNode->getChild(3)->getChild(1); @@ -3055,12 +3079,12 @@ sal_Bool OQueryDesignView::checkStatement() OSQLParseNode::compress(pCondition); ::rtl::OUString sTemp; pParseNode->parseNodeToStr(sTemp,xConnection); - aSqlCmd = sTemp; + sSQL = sTemp; } } } } - return aSqlCmd; + return sSQL; } // ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- diff --git a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx index edcd46f09ae4..0bab915045cb 100644 --- a/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx +++ b/dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx @@ -96,7 +96,8 @@ OQueryTabWinUndoAct::~OQueryTabWinUndoAct() // und natuerlich auch die entsprechenden Connections ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); - for(;aIter != m_vTableConnection.end();++aIter) + ::std::vector<OTableConnection*>::iterator aEnd = m_vTableConnection.end(); + for(;aIter != aEnd;++aIter) { m_pOwner->DeselectConn(*aIter); delete (*aIter); diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx b/dbaccess/source/ui/querydesign/QueryTableView.cxx index 2d2623e4b246..a936178c0fab 100644 --- a/dbaccess/source/ui/querydesign/QueryTableView.cxx +++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx @@ -434,14 +434,15 @@ void OQueryTableView::NotifyTabConnection(const OQueryTableConnection& rNewConn, // erst mal schauen, ob ich diese Connection schon habe OQueryTableConnection* pTabConn = NULL; const ::std::vector<OTableConnection*>* pConnections = getTableConnections(); + ::std::vector<OTableConnection*>::const_iterator aEnd = pConnections->end(); ::std::vector<OTableConnection*>::const_iterator aIter = ::std::find( pConnections->begin(), - pConnections->end(), + aEnd, static_cast<const OTableConnection*>(&rNewConn) ); - if(aIter == pConnections->end()) + if(aIter == aEnd ) { aIter = pConnections->begin(); - for(;aIter != pConnections->end();++aIter) + for(;aIter != aEnd;++aIter) { if(*static_cast<OQueryTableConnection*>(*aIter) == rNewConn) { @@ -549,14 +550,15 @@ void OQueryTableView::AddTabWin(const ::rtl::OUString& _rComposedName, const ::r TTableWindowData::value_type pNewTabWinData; TTableWindowData* pWindowData = getDesignView()->getController().getTableWindowData(); TTableWindowData::iterator aWinIter = pWindowData->begin(); - for(;aWinIter != pWindowData->end();++aWinIter) + TTableWindowData::iterator aWinEnd = pWindowData->end(); + for(;aWinIter != aWinEnd;++aWinIter) { pNewTabWinData = *aWinIter; if (pNewTabWinData && pNewTabWinData->GetWinName() == strAlias && pNewTabWinData->GetComposedName() == _rComposedName && pNewTabWinData->GetTableName() == _rTableName) break; } if ( !bAppend ) - bAppend = ( aWinIter == pWindowData->end() ); + bAppend = ( aWinIter == aWinEnd ); if ( bAppend ) pNewTabWinData = createTableWindowData(_rComposedName, _rTableName, strAlias); // die TabWinData brauche ich nicht in die entsprechende Liste der DocShell eintragen, das macht ShowTabWin @@ -626,9 +628,10 @@ void OQueryTableView::AddTabWin(const ::rtl::OUString& _rComposedName, const ::r OSL_ENSURE(aReferencedTable.getLength(),"Foreign key without referencedTableName"); OTableWindowMap::const_iterator aIter = pTabWins->find(aReferencedTable); - if(aIter == pTabWins->end()) + OTableWindowMap::const_iterator aEnd = pTabWins->end(); + if(aIter == aEnd) { - for(aIter = pTabWins->begin();aIter != pTabWins->end();++aIter) + for(aIter = pTabWins->begin();aIter != aEnd;++aIter) { OQueryTableWindow* pTabWinTmp = static_cast<OQueryTableWindow*>(aIter->second); OSL_ENSURE( pTabWinTmp,"TableWindow is null!" ); @@ -636,7 +639,7 @@ void OQueryTableView::AddTabWin(const ::rtl::OUString& _rComposedName, const ::r break; } } - if ( aIter != pTabWins->end() && pNewTabWin != aIter->second ) + if ( aIter != aEnd && pNewTabWin != aIter->second ) addConnections( this, *pNewTabWin, *static_cast<OQueryTableWindow*>(aIter->second), xFKeyColumns ); } break; @@ -645,7 +648,8 @@ void OQueryTableView::AddTabWin(const ::rtl::OUString& _rComposedName, const ::r { // we have a primary key so look in our list if there exsits a key which this is refered to OTableWindowMap::const_iterator aIter = pTabWins->begin(); - for(;aIter != pTabWins->end();++aIter) + OTableWindowMap::const_iterator aEnd = pTabWins->end(); + for(;aIter != aEnd;++aIter) { OQueryTableWindow* pTabWinTmp = static_cast<OQueryTableWindow*>(aIter->second); if ( pTabWinTmp == pNewTabWin ) @@ -827,7 +831,8 @@ sal_Bool OQueryTableView::FindTableFromField(const String& rFieldName, OTableFie DBG_CHKTHIS(OQueryTableView,NULL); rCnt = 0; OTableWindowMap::const_iterator aIter = GetTabWinMap()->begin(); - for(;aIter != GetTabWinMap()->end();++aIter) + OTableWindowMap::const_iterator aEnd = GetTabWinMap()->end(); + for(;aIter != aEnd;++aIter) { if(static_cast<OQueryTableWindow*>(aIter->second)->ExistsField(rFieldName, rInfo)) ++rCnt; @@ -919,7 +924,8 @@ void OQueryTableView::HideTabWin( OQueryTableWindow* pTabWin, OQueryTabWinUndoAc // (ich muss ueber das Parent gehen, da nur das die Position der Scrollbars kennt) // dann aus der Liste der TabWins raus und verstecken OTableWindowMap::iterator aIter = pTabWins->begin(); - for ( ;aIter != pTabWins->end(); ++aIter ) + OTableWindowMap::iterator aEnd = pTabWins->end(); + for ( ;aIter != aEnd ; ++aIter ) if ( aIter->second == pTabWin ) { pTabWins->erase( aIter ); @@ -943,7 +949,7 @@ void OQueryTableView::HideTabWin( OQueryTableWindow* pTabWin, OQueryTabWinUndoAc sal_Int16 nCnt = 0; const ::std::vector<OTableConnection*>* pTabConList = getTableConnections(); ::std::vector<OTableConnection*>::const_iterator aIter2 = pTabConList->begin(); - for(;aIter2 != pTabConList->end();) + for(;aIter2 != pTabConList->end();)// the end may change { OQueryTableConnection* pTmpEntry = static_cast<OQueryTableConnection*>(*aIter2); OSL_ENSURE(pTmpEntry,"OQueryTableConnection is null!"); @@ -1016,8 +1022,9 @@ sal_Bool OQueryTableView::ShowTabWin( OQueryTableWindow* pTabWin, OQueryTabWinUn // die Connections ::std::vector<OTableConnection*>* pTableCon = pUndoAction->GetTabConnList(); ::std::vector<OTableConnection*>::iterator aIter = pTableCon->begin(); + ::std::vector<OTableConnection*>::iterator aEnd = pTableCon->end(); - for(;aIter != pTableCon->end();++aIter) + for(;aIter != aEnd;++aIter) addConnection(*aIter); // add all connections from the undo action // each connection should invalidated inside addConnection so we don't need this here any longer @@ -1069,7 +1076,8 @@ sal_Bool OQueryTableView::ExistsAVisitedConn(const OQueryTableWindow* pFrom) con if (pList) { ::std::vector<OTableConnection*>::const_iterator aIter = pList->begin(); - for(;aIter != pList->end();++aIter) + ::std::vector<OTableConnection*>::const_iterator aEnd = pList->end(); + for(;aIter != aEnd;++aIter) { OQueryTableConnection* pTemp = static_cast<OQueryTableConnection*>(*aIter); if (pTemp->IsVisited() && diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx index 440be631a3ae..fa1b1e82fbd8 100644 --- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx +++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx @@ -573,7 +573,9 @@ void OSelectionBrowseBox::InitController(CellControllerRef& /*rController*/, lon if (pTabWinList) { OJoinTableView::OTableWindowMap::iterator aIter = pTabWinList->begin(); - for(;aIter != pTabWinList->end();++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = pTabWinList->end(); + + for(;aIter != aEnd;++aIter) m_pTableCell->InsertEntry(static_cast<OQueryTableWindow*>(aIter->second)->GetAliasName()); m_pTableCell->InsertEntry(String(ModuleRes(STR_QUERY_NOTABLE)), 0); @@ -1790,7 +1792,8 @@ void OSelectionBrowseBox::AddGroupBy( const OTableFieldDescRef& rInfo , sal_uInt OTableFields& rFields = getFields(); OTableFields::iterator aIter = rFields.begin(); - for(;aIter != rFields.end();++aIter) + OTableFields::iterator aEnd = rFields.end(); + for(;aIter != aEnd;++aIter) { pEntry = *aIter; OSL_ENSURE(pEntry.isValid(),"OTableFieldDescRef was null!"); @@ -1845,8 +1848,10 @@ void OSelectionBrowseBox::AddCondition( const OTableFieldDescRef& rInfo, const S Reference<XDatabaseMetaData> xMeta = xConnection->getMetaData(); ::comphelper::UStringMixEqual bCase(xMeta.is() && xMeta->supportsMixedCaseQuotedIdentifiers()); - OTableFields::iterator aIter = getFields().begin(); - for(;aIter != getFields().end();++aIter) + OTableFields& rFields = getFields(); + OTableFields::iterator aIter = rFields.begin(); + OTableFields::iterator aEnd = rFields.end(); + for(;aIter != aEnd;++aIter) { pEntry = *aIter; const ::rtl::OUString aField = pEntry->GetField(); @@ -1926,7 +1931,8 @@ void OSelectionBrowseBox::AddOrder( const OTableFieldDescRef& rInfo, const EOrde sal_Bool bAppend = sal_False; OTableFields& rFields = getFields(); OTableFields::iterator aIter = rFields.begin(); - for(;aIter != rFields.end();++aIter) + OTableFields::iterator aEnd = rFields.end(); + for(;aIter != aEnd;++aIter) { pEntry = *aIter; ::rtl::OUString aField = pEntry->GetField(); diff --git a/dbaccess/source/ui/querydesign/TableConnection.cxx b/dbaccess/source/ui/querydesign/TableConnection.cxx index 11e9da016f0d..38b2507da98a 100644 --- a/dbaccess/source/ui/querydesign/TableConnection.cxx +++ b/dbaccess/source/ui/querydesign/TableConnection.cxx @@ -89,8 +89,9 @@ namespace dbaui // Linienliste mit Defaults initialisieren OConnectionLineDataVec* pLineData = GetData()->GetConnLineDataList(); OConnectionLineDataVec::const_iterator aIter = pLineData->begin(); + OConnectionLineDataVec::const_iterator aEnd = pLineData->end(); m_vConnLine.reserve(pLineData->size()); - for(;aIter != pLineData->end();++aIter) + for(;aIter != aEnd;++aIter) m_vConnLine.push_back( new OConnectionLine(this, *aIter) ); } @@ -102,7 +103,8 @@ namespace dbaui // ----------------------------------------------------------------------------- void OTableConnection::clearLineData() { - for(::std::vector<OConnectionLine*>::iterator aLineIter = m_vConnLine.begin();aLineIter != m_vConnLine.end();++aLineIter) + ::std::vector<OConnectionLine*>::iterator aLineEnd = m_vConnLine.end(); + for(::std::vector<OConnectionLine*>::iterator aLineIter = m_vConnLine.begin();aLineIter != aLineEnd;++aLineIter) delete *aLineIter; m_vConnLine.clear(); } @@ -130,8 +132,9 @@ namespace dbaui { const ::std::vector<OConnectionLine*>* pLine = rConn.GetConnLineList(); ::std::vector<OConnectionLine*>::const_iterator aIter = pLine->begin(); + ::std::vector<OConnectionLine*>::const_iterator aEnd = pLine->end(); m_vConnLine.reserve(pLine->size()); - for(;aIter != pLine->end();++aIter) + for(;aIter != aEnd;++aIter) m_vConnLine.push_back( CreateConnLine( **aIter )); } @@ -223,7 +226,8 @@ namespace dbaui // Aus allen Linien das umgebende Rechteck bestimmen Rectangle aBoundingRect( Point(0,0), Point(0,0) ); Rectangle aTempRect; - for(::std::vector<OConnectionLine*>::const_iterator aIter = m_vConnLine.begin();aIter != m_vConnLine.end();++aIter) + ::std::vector<OConnectionLine*>::const_iterator aEnd = m_vConnLine.end(); + for(::std::vector<OConnectionLine*>::const_iterator aIter = m_vConnLine.begin();aIter != aEnd;++aIter) { aTempRect = (*aIter)->GetBoundingRect(); diff --git a/dbaccess/source/ui/querydesign/TableConnectionData.cxx b/dbaccess/source/ui/querydesign/TableConnectionData.cxx index 3ef73f61dbdb..c1d55cfb4793 100644 --- a/dbaccess/source/ui/querydesign/TableConnectionData.cxx +++ b/dbaccess/source/ui/querydesign/TableConnectionData.cxx @@ -111,7 +111,8 @@ OTableConnectionData& OTableConnectionData::operator=( const OTableConnectionDat OConnectionLineDataVec* pLineData = const_cast<OTableConnectionData*>(&rConnData)->GetConnLineDataList(); OConnectionLineDataVec::const_iterator aIter = pLineData->begin(); - for(;aIter != pLineData->end();++aIter) + OConnectionLineDataVec::const_iterator aEnd = pLineData->end(); + for(;aIter != aEnd;++aIter) m_vConnLineData.push_back(new OConnectionLineData(**aIter)); return *this; @@ -140,12 +141,13 @@ BOOL OTableConnectionData::SetConnLine( USHORT nIndex, const String& rSourceFiel BOOL OTableConnectionData::AppendConnLine( const ::rtl::OUString& rSourceFieldName, const ::rtl::OUString& rDestFieldName ) { OConnectionLineDataVec::iterator aIter = m_vConnLineData.begin(); - for(;aIter != m_vConnLineData.end();++aIter) + OConnectionLineDataVec::iterator aEnd = m_vConnLineData.end(); + for(;aIter != aEnd;++aIter) { if((*aIter)->GetDestFieldName() == rDestFieldName && (*aIter)->GetSourceFieldName() == rSourceFieldName) break; } - if(aIter == m_vConnLineData.end()) + if(aIter == aEnd) { OConnectionLineDataRef pNew = new OConnectionLineData(rSourceFieldName, rDestFieldName); if (!pNew.isValid()) diff --git a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx index 9db1be38959f..fe419a957e7e 100644 --- a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx +++ b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx @@ -187,9 +187,10 @@ namespace dbaui // search the postion of our table window in the table window map OJoinTableView::OTableWindowMap* pMap = m_pTable->getTableView()->GetTabWinMap(); OJoinTableView::OTableWindowMap::iterator aIter = pMap->begin(); - for (nIndex = 0; aIter != pMap->end() && aIter->second != m_pTable; ++nIndex,++aIter) + OJoinTableView::OTableWindowMap::iterator aEnd = pMap->end(); + for (nIndex = 0; aIter != aEnd && aIter->second != m_pTable; ++nIndex,++aIter) ; - nIndex = aIter != pMap->end() ? nIndex : -1; + nIndex = aIter != aEnd ? nIndex : -1; } return nIndex; } @@ -278,9 +279,10 @@ namespace dbaui const ::std::vector<OTableConnection*>* pConnectionList = pView->getTableConnections(); ::std::vector<OTableConnection*>::const_iterator aIter = pView->getTableConnections(m_pTable); + ::std::vector<OTableConnection*>::const_iterator aEnd = pConnectionList->end(); ::std::vector< Reference<XInterface> > aRelations; aRelations.reserve(5); // just guessing - for (; aIter != pConnectionList->end() ; ++aIter ) + for (; aIter != aEnd ; ++aIter ) aRelations.push_back(getParentChild(aIter - pConnectionList->begin())); Reference<XInterface> *pRelations = aRelations.empty() ? 0 : &aRelations[0]; diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx index 5b6be38be4a9..d29fa9b3ab5a 100644 --- a/dbaccess/source/ui/querydesign/querycontroller.cxx +++ b/dbaccess/source/ui/querydesign/querycontroller.cxx @@ -1098,8 +1098,9 @@ void OQueryController::reconnect(sal_Bool _bUI) void OQueryController::saveViewSettings(Sequence<PropertyValue>& _rViewProps) { OTableFields::const_iterator aFieldIter = m_vTableFieldDesc.begin(); + OTableFields::const_iterator aFieldEnd = m_vTableFieldDesc.end(); sal_Int32 nCount = 0; - for(;aFieldIter != m_vTableFieldDesc.end();++aFieldIter) + for(;aFieldIter != aFieldEnd;++aFieldIter) { if(!(*aFieldIter)->IsEmpty()) ++nCount; @@ -1118,7 +1119,7 @@ void OQueryController::saveViewSettings(Sequence<PropertyValue>& _rViewProps) PropertyValue *pFieldsIter = aFields.getArray(); // the fielddata aFieldIter = m_vTableFieldDesc.begin(); - for(sal_Int32 i = 1;aFieldIter != m_vTableFieldDesc.end();++aFieldIter,++i) + for(sal_Int32 i = 1;aFieldIter !=aFieldEnd;++aFieldIter,++i) { if ( !(*aFieldIter)->IsEmpty() ) { |