summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-09-20 16:14:49 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-09-21 15:41:50 +0200
commit2a612907aef4c9987f906c6b98aa9b400f58f617 (patch)
tree6170f363054cabb1cd33af9208145827b22c83a1 /connectivity
parent3a481dde031ba416ec4ef0351130e26e49417418 (diff)
loplugin:flatten in connectivity..desktop
Change-Id: Iff59d3049ba40b4338ef8eec67d08a96b0834d2b Reviewed-on: https://gerrit.libreoffice.org/42578 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/drivers/file/FStatement.cxx110
-rw-r--r--connectivity/source/drivers/firebird/ResultSet.cxx6
-rw-r--r--connectivity/source/drivers/postgresql/pq_preparedstatement.cxx9
-rw-r--r--connectivity/source/manager/mdrivermanager.cxx15
4 files changed, 66 insertions, 74 deletions
diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx
index ec86d0a28603..e275e7d1aa19 100644
--- a/connectivity/source/drivers/file/FStatement.cxx
+++ b/connectivity/source/drivers/file/FStatement.cxx
@@ -372,74 +372,72 @@ void OStatement_Base::construct(const OUString& sql)
{
OUString aErr;
m_pParseTree = m_aParser.parseTree(aErr,sql);
- if(m_pParseTree)
- {
- m_aSQLIterator.setParseTree(m_pParseTree);
- m_aSQLIterator.traverseAll();
- const OSQLTables& rTabs = m_aSQLIterator.getTables();
+ if(!m_pParseTree)
+ throw SQLException(aErr,*this,OUString(),0,Any());
- // sanity checks
- if ( rTabs.empty() )
- // no tables -> nothing to operate on -> error
- m_pConnection->throwGenericSQLException(STR_QUERY_NO_TABLE,*this);
+ m_aSQLIterator.setParseTree(m_pParseTree);
+ m_aSQLIterator.traverseAll();
+ const OSQLTables& rTabs = m_aSQLIterator.getTables();
- if ( rTabs.size() > 1 || m_aSQLIterator.hasErrors() )
- // more than one table -> can't operate on them -> error
- m_pConnection->throwGenericSQLException(STR_QUERY_MORE_TABLES,*this);
+ // sanity checks
+ if ( rTabs.empty() )
+ // no tables -> nothing to operate on -> error
+ m_pConnection->throwGenericSQLException(STR_QUERY_NO_TABLE,*this);
- if ( (m_aSQLIterator.getStatementType() == OSQLStatementType::Select) && m_aSQLIterator.getSelectColumns()->get().empty() )
- // SELECT statement without columns -> error
- m_pConnection->throwGenericSQLException(STR_QUERY_NO_COLUMN,*this);
+ if ( rTabs.size() > 1 || m_aSQLIterator.hasErrors() )
+ // more than one table -> can't operate on them -> error
+ m_pConnection->throwGenericSQLException(STR_QUERY_MORE_TABLES,*this);
- switch(m_aSQLIterator.getStatementType())
- {
- case OSQLStatementType::CreateTable:
- case OSQLStatementType::OdbcCall:
- case OSQLStatementType::Unknown:
- m_pConnection->throwGenericSQLException(STR_QUERY_TOO_COMPLEX,*this);
- break;
- default:
- break;
- }
+ if ( (m_aSQLIterator.getStatementType() == OSQLStatementType::Select) && m_aSQLIterator.getSelectColumns()->get().empty() )
+ // SELECT statement without columns -> error
+ m_pConnection->throwGenericSQLException(STR_QUERY_NO_COLUMN,*this);
- // at this moment we support only one table per select statement
- Reference< css::lang::XUnoTunnel> xTunnel(rTabs.begin()->second,UNO_QUERY);
- if(xTunnel.is())
- {
- m_pTable = reinterpret_cast<OFileTable*>(xTunnel->getSomething(OFileTable::getUnoTunnelImplementationId()));
- }
- OSL_ENSURE(m_pTable.is(),"No table!");
- if ( m_pTable.is() )
- m_xColNames = m_pTable->getColumns();
- Reference<XIndexAccess> xNames(m_xColNames,UNO_QUERY);
- // set the binding of the resultrow
- m_aRow = new OValueRefVector(xNames->getCount());
- (m_aRow->get())[0]->setBound(true);
- std::for_each(m_aRow->get().begin()+1,m_aRow->get().end(),TSetRefBound(false));
+ switch(m_aSQLIterator.getStatementType())
+ {
+ case OSQLStatementType::CreateTable:
+ case OSQLStatementType::OdbcCall:
+ case OSQLStatementType::Unknown:
+ m_pConnection->throwGenericSQLException(STR_QUERY_TOO_COMPLEX,*this);
+ break;
+ default:
+ break;
+ }
- // set the binding of the resultrow
- m_aEvaluateRow = new OValueRefVector(xNames->getCount());
+ // at this moment we support only one table per select statement
+ Reference< css::lang::XUnoTunnel> xTunnel(rTabs.begin()->second,UNO_QUERY);
+ if(xTunnel.is())
+ {
+ m_pTable = reinterpret_cast<OFileTable*>(xTunnel->getSomething(OFileTable::getUnoTunnelImplementationId()));
+ }
+ OSL_ENSURE(m_pTable.is(),"No table!");
+ if ( m_pTable.is() )
+ m_xColNames = m_pTable->getColumns();
+ Reference<XIndexAccess> xNames(m_xColNames,UNO_QUERY);
+ // set the binding of the resultrow
+ m_aRow = new OValueRefVector(xNames->getCount());
+ (m_aRow->get())[0]->setBound(true);
+ std::for_each(m_aRow->get().begin()+1,m_aRow->get().end(),TSetRefBound(false));
- (m_aEvaluateRow->get())[0]->setBound(true);
- std::for_each(m_aEvaluateRow->get().begin()+1,m_aEvaluateRow->get().end(),TSetRefBound(false));
+ // set the binding of the resultrow
+ m_aEvaluateRow = new OValueRefVector(xNames->getCount());
- // set the select row
- m_aSelectRow = new OValueRefVector(m_aSQLIterator.getSelectColumns()->get().size());
- std::for_each(m_aSelectRow->get().begin(),m_aSelectRow->get().end(),TSetRefBound(true));
+ (m_aEvaluateRow->get())[0]->setBound(true);
+ std::for_each(m_aEvaluateRow->get().begin()+1,m_aEvaluateRow->get().end(),TSetRefBound(false));
- // create the column mapping
- createColumnMapping();
+ // set the select row
+ m_aSelectRow = new OValueRefVector(m_aSQLIterator.getSelectColumns()->get().size());
+ std::for_each(m_aSelectRow->get().begin(),m_aSelectRow->get().end(),TSetRefBound(true));
- m_pSQLAnalyzer = new OSQLAnalyzer(m_pConnection.get());
+ // create the column mapping
+ createColumnMapping();
- Reference<XIndexesSupplier> xIndexSup(xTunnel,UNO_QUERY);
- if(xIndexSup.is())
- m_pSQLAnalyzer->setIndexes(xIndexSup->getIndexes());
+ m_pSQLAnalyzer = new OSQLAnalyzer(m_pConnection.get());
- anylizeSQL();
- }
- else
- throw SQLException(aErr,*this,OUString(),0,Any());
+ Reference<XIndexesSupplier> xIndexSup(xTunnel,UNO_QUERY);
+ if(xIndexSup.is())
+ m_pSQLAnalyzer->setIndexes(xIndexSup->getIndexes());
+
+ anylizeSQL();
}
void OStatement_Base::createColumnMapping()
diff --git a/connectivity/source/drivers/firebird/ResultSet.cxx b/connectivity/source/drivers/firebird/ResultSet.cxx
index 859b28f48d0c..abb0c03b8be0 100644
--- a/connectivity/source/drivers/firebird/ResultSet.cxx
+++ b/connectivity/source/drivers/firebird/ResultSet.cxx
@@ -614,10 +614,10 @@ template <>
ISC_QUAD* OResultSet::retrieveValue(const sal_Int32 nColumnIndex, const ISC_SHORT nType)
{
// TODO: this is probably wrong
- if ((m_pSqlda->sqlvar[nColumnIndex-1].sqltype & ~1) == nType)
- return reinterpret_cast<ISC_QUAD*>(m_pSqlda->sqlvar[nColumnIndex-1].sqldata);
- else
+ if ((m_pSqlda->sqlvar[nColumnIndex-1].sqltype & ~1) != nType)
throw SQLException(); // TODO: better exception (can't convert Blob)
+
+ return reinterpret_cast<ISC_QUAD*>(m_pSqlda->sqlvar[nColumnIndex-1].sqldata);
}
template <typename T>
diff --git a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
index 34ca29b4e55d..d06fa9bcf507 100644
--- a/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
+++ b/connectivity/source/drivers/postgresql/pq_preparedstatement.cxx
@@ -600,18 +600,15 @@ void PreparedStatement::setObjectWithInfo(
{
x >>= myString;
}
- if( !myString.isEmpty() )
- {
-// printf( "setObjectWithInfo %s\n", OUStringToOString(myString,RTL_TEXTENCODING_ASCII_US).getStr());
- setString( parameterIndex, myString );
- }
- else
+ if( myString.isEmpty() )
{
throw SQLException(
"pq_preparedstatement::setObjectWithInfo: can't convert value of type "
+ x.getValueTypeName() + " to type DECIMAL or NUMERIC",
*this, OUString(), 1, Any () );
}
+
+ setString( parameterIndex, myString );
}
else
{
diff --git a/connectivity/source/manager/mdrivermanager.cxx b/connectivity/source/manager/mdrivermanager.cxx
index e32934774d8a..e2a3d0ddf360 100644
--- a/connectivity/source/manager/mdrivermanager.cxx
+++ b/connectivity/source/manager/mdrivermanager.cxx
@@ -566,16 +566,13 @@ void SAL_CALL OSDBCDriverManager::registerObject( const OUString& _rName, const
);
DriverCollection::const_iterator aSearch = m_aDriversRT.find(_rName);
- if (aSearch == m_aDriversRT.end())
- {
- Reference< XDriver > xNewDriver(_rxObject, UNO_QUERY);
- if (xNewDriver.is())
- m_aDriversRT.emplace(_rName, xNewDriver);
- else
- throw IllegalArgumentException();
- }
- else
+ if (aSearch != m_aDriversRT.end())
throw ElementExistException();
+ Reference< XDriver > xNewDriver(_rxObject, UNO_QUERY);
+ if (!xNewDriver.is())
+ throw IllegalArgumentException();
+
+ m_aDriversRT.emplace(_rName, xNewDriver);
m_aEventLogger.log( LogLevel::INFO,
"new driver registered for name $1$",