diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2017-12-26 21:19:43 +0100 |
---|---|---|
committer | Julien Nabet <serval2412@yahoo.fr> | 2017-12-27 11:34:51 +0100 |
commit | 965c93c3776f619eb76d3474febe2ae5fc1ab51a (patch) | |
tree | 93ee6191afdb791c3435cfb6a4f1d45b862cfdbb /dbaccess | |
parent | 5d64ef270b22544a2dcbcaed191050b616d1f956 (diff) |
Use for-range loops in dbaccess/OptimisticSet
Change-Id: Iccd0848e772867ece243444dc697e264907b28d4
Reviewed-on: https://gerrit.libreoffice.org/47072
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/source/core/api/OptimisticSet.cxx | 172 |
1 files changed, 74 insertions, 98 deletions
diff --git a/dbaccess/source/core/api/OptimisticSet.cxx b/dbaccess/source/core/api/OptimisticSet.cxx index 461bd6334385..5c2a45017f44 100644 --- a/dbaccess/source/core/api/OptimisticSet.cxx +++ b/dbaccess/source/core/api/OptimisticSet.cxx @@ -179,29 +179,27 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _ TSQLStatements aSql; // here we build the condition part for the update statement - SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); - SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end(); - for(;aIter != aEnd;++aIter) + for (auto const& columnName : *m_pColumnNames) { - if ( aResultSetChanged.find( aIter->second.sTableName ) == aResultSetChanged.end() ) - aResultSetChanged[aIter->second.sTableName] = false; - const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName); - if ( m_pKeyColumnNames->find(aIter->first) != m_pKeyColumnNames->end() ) + if ( aResultSetChanged.find( columnName.second.sTableName ) == aResultSetChanged.end() ) + aResultSetChanged[columnName.second.sTableName] = false; + const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName); + if ( m_pKeyColumnNames->find(columnName.first) != m_pKeyColumnNames->end() ) { - aResultSetChanged[aIter->second.sTableName] = m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end(); - lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rOriginalRow->get())[aIter->second.nPosition],aKeyConditions); + aResultSetChanged[columnName.second.sTableName] = m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end(); + lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rOriginalRow->get())[columnName.second.nPosition],aKeyConditions); } - if((_rInsertRow->get())[aIter->second.nPosition].isModified()) + if((_rInsertRow->get())[columnName.second.nPosition].isModified()) { - if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end() ) + if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() ) throw SQLException(); - std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(aIter->second.nPosition); + std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(columnName.second.nPosition); if ( aJoinIter != m_aJoinedColumns.end() ) { - (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[aIter->second.nPosition]; + (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[columnName.second.nPosition]; } - OUStringBuffer& rPart = aSql[aIter->second.sTableName]; + OUStringBuffer& rPart = aSql[columnName.second.sTableName]; if ( !rPart.isEmpty() ) rPart.append(", "); rPart.append(sQuotedColumnName + " = ?"); @@ -216,22 +214,20 @@ void OptimisticSet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow& _ Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - TSQLStatements::iterator aSqlIter = aSql.begin(); - TSQLStatements::iterator aSqlEnd = aSql.end(); - for(;aSqlIter != aSqlEnd ; ++aSqlIter) + for (auto const& elem : aSql) { - if ( !aSqlIter->second.isEmpty() ) + if ( !elem.second.isEmpty() ) { - m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[aSqlIter->first]; + m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[elem.first]; OUString sCatalog,sSchema,sTable; - ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); + ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); OUStringBuffer sSql("UPDATE " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) + - " SET " + aSqlIter->second.toString()); - OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first]; + " SET " + elem.second.toString()); + OUStringBuffer& rCondition = aKeyConditions[elem.first]; if ( !rCondition.isEmpty() ) sSql.append(" WHERE " + rCondition.toString() ); - executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),aSqlIter->first); + executeUpdate(_rInsertRow ,_rOriginalRow,sSql.makeStringAndClear(),elem.first); } } } @@ -245,31 +241,29 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity: OUString aQuote = getIdentifierQuoteString(); // here we build the condition part for the update statement - SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); - SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end(); - for(;aIter != aEnd;++aIter) + for (auto const& columnName : *m_pColumnNames) { - if ( aResultSetChanged.find( aIter->second.sTableName ) == aResultSetChanged.end() ) - aResultSetChanged[aIter->second.sTableName] = false; + if ( aResultSetChanged.find( columnName.second.sTableName ) == aResultSetChanged.end() ) + aResultSetChanged[columnName.second.sTableName] = false; - const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName); - if ( (_rInsertRow->get())[aIter->second.nPosition].isModified() ) + const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName); + if ( (_rInsertRow->get())[columnName.second.nPosition].isModified() ) { - if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) != m_aJoinedKeyColumns.end() ) + if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() ) { - lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rInsertRow->get())[aIter->second.nPosition],aKeyConditions); - aResultSetChanged[aIter->second.sTableName] = true; + lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rInsertRow->get())[columnName.second.nPosition],aKeyConditions); + aResultSetChanged[columnName.second.sTableName] = true; } - std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(aIter->second.nPosition); + std::map<sal_Int32,sal_Int32>::const_iterator aJoinIter = m_aJoinedColumns.find(columnName.second.nPosition); if ( aJoinIter != m_aJoinedColumns.end() ) { - (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[aIter->second.nPosition]; + (_rInsertRow->get())[aJoinIter->second] = (_rInsertRow->get())[columnName.second.nPosition]; } - OUStringBuffer& rPart = aSql[aIter->second.sTableName]; + OUStringBuffer& rPart = aSql[columnName.second.sTableName]; if ( !rPart.isEmpty() ) rPart.append(", "); rPart.append(sQuotedColumnName); - OUStringBuffer& rParam = aParameter[aIter->second.sTableName]; + OUStringBuffer& rParam = aParameter[columnName.second.sTableName]; if ( !rParam.isEmpty() ) rParam.append(", "); rParam.append("?"); @@ -279,23 +273,21 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity: ::dbtools::throwSQLException( DBA_RES( RID_STR_NO_VALUE_CHANGED ), StandardSQLState::GENERAL_ERROR, m_xConnection ); Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - TSQLStatements::iterator aSqlIter = aSql.begin(); - TSQLStatements::iterator aSqlEnd = aSql.end(); - for(;aSqlIter != aSqlEnd ; ++aSqlIter) + for (auto const& elem : aSql) { - if ( !aSqlIter->second.isEmpty() ) + if ( !elem.second.isEmpty() ) { - m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[aSqlIter->first]; + m_bResultSetChanged = m_bResultSetChanged || aResultSetChanged[elem.first]; OUString sCatalog,sSchema,sTable; - ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); + ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ); - OUString sSql("INSERT INTO " + sComposedTableName + " ( " + aSqlIter->second.toString() + - ") VALUES ( " + aParameter[aSqlIter->first].toString() + " )"); + OUString sSql("INSERT INTO " + sComposedTableName + " ( " + elem.second.toString() + + ") VALUES ( " + aParameter[elem.first].toString() + " )"); - OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first]; + OUStringBuffer& rCondition = aKeyConditions[elem.first]; if ( !rCondition.isEmpty() ) { - OUString sQuery("SELECT " + aSqlIter->second.toString() + " FROM " + sComposedTableName + + OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName + " WHERE " + rCondition.toString()); try @@ -303,14 +295,12 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity: Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(sQuery)); Reference< XParameters > xParameter(xPrep,UNO_QUERY); // and then the values of the where condition - SelectColumnsMetaData::iterator aKeyCol = m_pKeyColumnNames->begin(); - SelectColumnsMetaData::iterator aKeysEnd = m_pKeyColumnNames->end(); sal_Int32 i = 1; - for(;aKeyCol != aKeysEnd;++aKeyCol) + for (auto const& keyColumnName : *m_pKeyColumnNames) { - if ( aKeyCol->second.sTableName == aSqlIter->first ) + if ( keyColumnName.second.sTableName == elem.first ) { - setParameter(i++,xParameter,(_rInsertRow->get())[aKeyCol->second.nPosition],aKeyCol->second.nType,aKeyCol->second.nScale); + setParameter(i++,xParameter,(_rInsertRow->get())[keyColumnName.second.nPosition],keyColumnName.second.nType,keyColumnName.second.nScale); } } Reference<XResultSet> xRes = xPrep->executeQuery(); @@ -326,7 +316,7 @@ void OptimisticSet::insertRow( const ORowSetRow& _rInsertRow,const connectivity: } } - executeInsert(_rInsertRow,sSql,aSqlIter->first); + executeInsert(_rInsertRow,sSql,elem.first); } } } @@ -337,30 +327,26 @@ void OptimisticSet::deleteRow(const ORowSetRow& _rDeleteRow,const connectivity:: TSQLStatements aKeyConditions; // here we build the condition part for the update statement - SelectColumnsMetaData::const_iterator aIter = m_pColumnNames->begin(); - SelectColumnsMetaData::const_iterator aEnd = m_pColumnNames->end(); - for(;aIter != aEnd;++aIter) + for (auto const& columnName : *m_pColumnNames) { - if ( m_aJoinedKeyColumns.find(aIter->second.nPosition) == m_aJoinedKeyColumns.end() && m_pKeyColumnNames->find(aIter->first) != m_pKeyColumnNames->end() ) + if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) == m_aJoinedKeyColumns.end() && m_pKeyColumnNames->find(columnName.first) != m_pKeyColumnNames->end() ) { // only delete rows which aren't the key in the join - const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aIter->second.sRealName); - lcl_fillKeyCondition(aIter->second.sTableName,sQuotedColumnName,(_rDeleteRow->get())[aIter->second.nPosition],aKeyConditions); + const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName); + lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,(_rDeleteRow->get())[columnName.second.nPosition],aKeyConditions); } } Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - TSQLStatements::iterator aSqlIter = aKeyConditions.begin(); - TSQLStatements::iterator aSqlEnd = aKeyConditions.end(); - for(;aSqlIter != aSqlEnd ; ++aSqlIter) + for (auto & keyCondition : aKeyConditions) { - OUStringBuffer& rCondition = aSqlIter->second; + OUStringBuffer& rCondition = keyCondition.second; if ( !rCondition.isEmpty() ) { OUString sCatalog,sSchema,sTable; - ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); + ::dbtools::qualifiedNameComponents(xMetaData,keyCondition.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); OUString sSql("DELETE FROM " + ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ) + " WHERE " + rCondition.toString() ); - executeDelete(_rDeleteRow, sSql, aSqlIter->first); + executeDelete(_rDeleteRow, sSql, keyCondition.first); } } } @@ -371,13 +357,11 @@ void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString& Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(i_sSQL)); Reference< XParameters > xParameter(xPrep,UNO_QUERY); - SelectColumnsMetaData::const_iterator aIter = m_pKeyColumnNames->begin(); - SelectColumnsMetaData::const_iterator aEnd = m_pKeyColumnNames->end(); sal_Int32 i = 1; - for(;aIter != aEnd;++aIter) + for (auto const& keyColumnName : *m_pKeyColumnNames) { - if ( aIter->second.sTableName == i_sTableName ) - setParameter(i++,xParameter,(_rDeleteRow->get())[aIter->second.nPosition],aIter->second.nType,aIter->second.nScale); + if ( keyColumnName.second.sTableName == i_sTableName ) + setParameter(i++,xParameter,(_rDeleteRow->get())[keyColumnName.second.nPosition],keyColumnName.second.nType,keyColumnName.second.nScale); } m_bDeleted = xPrep->executeUpdate() > 0; @@ -393,13 +377,12 @@ void OptimisticSet::executeDelete(const ORowSetRow& _rDeleteRow,const OUString& void OptimisticSet::fillJoinedColumns_throw(const std::vector< TNodePair >& i_aJoinColumns) { - std::vector< TNodePair >::const_iterator aIter = i_aJoinColumns.begin(); - for(;aIter != i_aJoinColumns.end();++aIter) + for (auto const& joinColumn : i_aJoinColumns) { OUString sColumnName,sTableName; - m_aSqlIterator.getColumnRange(aIter->first,sColumnName,sTableName); + m_aSqlIterator.getColumnRange(joinColumn.first,sColumnName,sTableName); OUString sLeft(sTableName + "." + sColumnName); - m_aSqlIterator.getColumnRange(aIter->second,sColumnName,sTableName); + m_aSqlIterator.getColumnRange(joinColumn.second,sColumnName,sTableName); OUString sRight(sTableName + "." + sColumnName); fillJoinedColumns_throw(sLeft, sRight); } @@ -553,34 +536,30 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const TSQLStatements aKeyConditions; OUString aQuote = getIdentifierQuoteString(); // here we build the condition part for the update statement - SelectColumnsMetaData::const_iterator aColIter = m_pColumnNames->begin(); - SelectColumnsMetaData::const_iterator aColEnd = m_pColumnNames->end(); - for(;aColIter != aColEnd;++aColIter) + for (auto const& columnName : *m_pColumnNames) { - const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,aColIter->second.sRealName); - if ( m_aJoinedKeyColumns.find(aColIter->second.nPosition) != m_aJoinedKeyColumns.end() ) + const OUString sQuotedColumnName = ::dbtools::quoteName( aQuote,columnName.second.sRealName); + if ( m_aJoinedKeyColumns.find(columnName.second.nPosition) != m_aJoinedKeyColumns.end() ) { - lcl_fillKeyCondition(aColIter->second.sTableName,sQuotedColumnName,io_aRow[aColIter->second.nPosition],aKeyConditions); + lcl_fillKeyCondition(columnName.second.sTableName,sQuotedColumnName,io_aRow[columnName.second.nPosition],aKeyConditions); } - OUStringBuffer& rPart = aSql[aColIter->second.sTableName]; + OUStringBuffer& rPart = aSql[columnName.second.sTableName]; if ( !rPart.isEmpty() ) rPart.append(", "); rPart.append(sQuotedColumnName); } Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); - TSQLStatements::iterator aSqlIter = aSql.begin(); - TSQLStatements::iterator aSqlEnd = aSql.end(); - for(;aSqlIter != aSqlEnd ; ++aSqlIter) + for (auto const& elem : aSql) { - if ( !aSqlIter->second.isEmpty() ) + if ( !elem.second.isEmpty() ) { - OUStringBuffer& rCondition = aKeyConditions[aSqlIter->first]; + OUStringBuffer& rCondition = aKeyConditions[elem.first]; if ( !rCondition.isEmpty() ) { OUString sCatalog,sSchema,sTable; - ::dbtools::qualifiedNameComponents(xMetaData,aSqlIter->first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); + ::dbtools::qualifiedNameComponents(xMetaData,elem.first,sCatalog,sSchema,sTable,::dbtools::EComposeRule::InDataManipulation); OUString sComposedTableName = ::dbtools::composeTableNameForSelect( m_xConnection, sCatalog, sSchema, sTable ); - OUString sQuery("SELECT " + aSqlIter->second.toString() + " FROM " + sComposedTableName + " WHERE " + + OUString sQuery("SELECT " + elem.second.toString() + " FROM " + sComposedTableName + " WHERE " + rCondition.makeStringAndClear()); try @@ -588,14 +567,12 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const Reference< XPreparedStatement > xPrep(m_xConnection->prepareStatement(sQuery)); Reference< XParameters > xParameter(xPrep,UNO_QUERY); // and then the values of the where condition - SelectColumnsMetaData::iterator aKeyIter = m_pKeyColumnNames->begin(); - SelectColumnsMetaData::iterator aKeyEnd = m_pKeyColumnNames->end(); sal_Int32 i = 1; - for(;aKeyIter != aKeyEnd;++aKeyIter) + for (auto const& keyColumn : *m_pKeyColumnNames) { - if ( aKeyIter->second.sTableName == aSqlIter->first ) + if ( keyColumn.second.sTableName == elem.first ) { - setParameter(i++,xParameter,io_aRow[aKeyIter->second.nPosition],aKeyIter->second.nType,aKeyIter->second.nScale); + setParameter(i++,xParameter,io_aRow[keyColumn.second.nPosition],keyColumn.second.nType,keyColumn.second.nScale); } } Reference<XResultSet> xRes = xPrep->executeQuery(); @@ -603,13 +580,12 @@ void OptimisticSet::fillMissingValues(ORowSetValueVector::Vector& io_aRow) const if ( xRow.is() && xRes->next() ) { i = 1; - aColIter = m_pColumnNames->begin(); - for(;aColIter != aColEnd;++aColIter) + for (auto const& columnName : *m_pColumnNames) { - if ( aColIter->second.sTableName == aSqlIter->first ) + if ( columnName.second.sTableName == elem.first ) { - io_aRow[aColIter->second.nPosition].fill(i++, aColIter->second.nType, xRow); - io_aRow[aColIter->second.nPosition].setModified(true); + io_aRow[columnName.second.nPosition].fill(i++, columnName.second.nType, xRow); + io_aRow[columnName.second.nPosition].setModified(true); } } } |