[Libreoffice-commits] core.git: connectivity/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Sat Apr 18 18:36:31 UTC 2020
connectivity/source/commontools/DriversConfig.cxx | 72 +-
connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx | 170 ++---
connectivity/source/commontools/FValue.cxx | 206 +++---
connectivity/source/commontools/TColumnsHelper.cxx | 28
connectivity/source/commontools/TIndexes.cxx | 44 -
connectivity/source/commontools/TKeys.cxx | 62 -
connectivity/source/commontools/TTableHelper.cxx | 86 +-
connectivity/source/commontools/conncleanup.cxx | 77 +-
connectivity/source/commontools/dbtools.cxx | 130 +--
connectivity/source/drivers/calc/CTable.cxx | 300 ++++----
connectivity/source/drivers/dbase/DIndex.cxx | 40 -
connectivity/source/drivers/dbase/DTable.cxx | 96 +-
connectivity/source/drivers/dbase/dindexnode.cxx | 32
connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx | 72 +-
connectivity/source/drivers/file/FPreparedStatement.cxx | 66 -
connectivity/source/drivers/file/FResultSet.cxx | 58 -
connectivity/source/drivers/file/FStatement.cxx | 30
connectivity/source/drivers/firebird/Blob.cxx | 22
connectivity/source/drivers/firebird/Connection.cxx | 75 +-
connectivity/source/drivers/firebird/Keys.cxx | 22
connectivity/source/drivers/firebird/Table.cxx | 36 -
connectivity/source/drivers/firebird/Tables.cxx | 20
connectivity/source/drivers/flat/ETable.cxx | 20
connectivity/source/drivers/hsqldb/HDriver.cxx | 62 -
connectivity/source/drivers/hsqldb/HStorageAccess.cxx | 76 +-
connectivity/source/drivers/hsqldb/HStorageMap.cxx | 30
connectivity/source/drivers/hsqldb/HTables.cxx | 56 -
connectivity/source/drivers/hsqldb/HUser.cxx | 134 ++--
connectivity/source/drivers/hsqldb/StorageFileAccess.cxx | 68 +-
connectivity/source/drivers/jdbc/CallableStatement.cxx | 56 -
connectivity/source/drivers/jdbc/JConnection.cxx | 26
connectivity/source/drivers/jdbc/JStatement.cxx | 51 -
connectivity/source/drivers/jdbc/PreparedStatement.cxx | 65 -
connectivity/source/drivers/mork/MPreparedStatement.cxx | 18
connectivity/source/drivers/mork/MStatement.cxx | 30
connectivity/source/drivers/mysql_jdbc/YTables.cxx | 73 +-
connectivity/source/drivers/mysql_jdbc/YUser.cxx | 186 ++---
connectivity/source/drivers/mysql_jdbc/YViews.cxx | 22
connectivity/source/drivers/odbc/OResultSet.cxx | 68 +-
connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx | 99 +-
connectivity/source/drivers/postgresql/pq_tools.cxx | 142 ++--
connectivity/source/drivers/postgresql/pq_xcontainer.cxx | 36 -
connectivity/source/drivers/postgresql/pq_xtables.cxx | 124 +--
connectivity/source/manager/mdrivermanager.cxx | 98 +-
connectivity/source/parse/sqlnode.cxx | 334 +++++-----
45 files changed, 1809 insertions(+), 1809 deletions(-)
New commits:
commit 2d0bdcc586af71dae665646b37177fa104c50906
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sat Apr 18 10:51:27 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Apr 18 20:35:49 2020 +0200
loplugin:flatten connectivity
Change-Id: Ic1d9eb84b64ebde99e15704a10b27f21447df4d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92469
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/connectivity/source/commontools/DriversConfig.cxx b/connectivity/source/commontools/DriversConfig.cxx
index e165763d5e5e..9d2ab8a475d7 100644
--- a/connectivity/source/commontools/DriversConfig.cxx
+++ b/connectivity/source/commontools/DriversConfig.cxx
@@ -41,48 +41,48 @@ namespace
void lcl_fillValues(const ::utl::OConfigurationNode& _aURLPatternNode,const OUString& _sNode,::comphelper::NamedValueCollection& _rValues)
{
const ::utl::OConfigurationNode aPropertiesNode = _aURLPatternNode.openNode(_sNode);
- if ( aPropertiesNode.isValid() )
+ if ( !aPropertiesNode.isValid() )
+ return;
+
+ uno::Sequence< OUString > aStringSeq;
+ const uno::Sequence< OUString > aProperties = aPropertiesNode.getNodeNames();
+ const OUString* pPropertiesIter = aProperties.getConstArray();
+ const OUString* pPropertiesEnd = pPropertiesIter + aProperties.getLength();
+ for (;pPropertiesIter != pPropertiesEnd ; ++pPropertiesIter)
{
- uno::Sequence< OUString > aStringSeq;
- const uno::Sequence< OUString > aProperties = aPropertiesNode.getNodeNames();
- const OUString* pPropertiesIter = aProperties.getConstArray();
- const OUString* pPropertiesEnd = pPropertiesIter + aProperties.getLength();
- for (;pPropertiesIter != pPropertiesEnd ; ++pPropertiesIter)
+ uno::Any aValue = aPropertiesNode.getNodeValue(*pPropertiesIter + "/Value");
+ if ( aValue >>= aStringSeq )
{
- uno::Any aValue = aPropertiesNode.getNodeValue(*pPropertiesIter + "/Value");
- if ( aValue >>= aStringSeq )
- {
- lcl_convert(aStringSeq,aValue);
- }
- _rValues.put(*pPropertiesIter,aValue);
- } // for (;pPropertiesIter != pPropertiesEnd ; ++pPropertiesIter,++pNamedIter)
- } // if ( aPropertiesNode.isValid() )
+ lcl_convert(aStringSeq,aValue);
+ }
+ _rValues.put(*pPropertiesIter,aValue);
+ } // for (;pPropertiesIter != pPropertiesEnd ; ++pPropertiesIter,++pNamedIter)
}
void lcl_readURLPatternNode(const ::utl::OConfigurationTreeRoot& _aInstalled,const OUString& _sEntry,TInstalledDriver& _rInstalledDriver)
{
const ::utl::OConfigurationNode aURLPatternNode = _aInstalled.openNode(_sEntry);
- if ( aURLPatternNode.isValid() )
- {
- OUString sParentURLPattern;
- aURLPatternNode.getNodeValue("ParentURLPattern") >>= sParentURLPattern;
- if ( !sParentURLPattern.isEmpty() )
- lcl_readURLPatternNode(_aInstalled,sParentURLPattern,_rInstalledDriver);
-
- OUString sDriverFactory;
- aURLPatternNode.getNodeValue("Driver") >>= sDriverFactory;
- if ( !sDriverFactory.isEmpty() )
- _rInstalledDriver.sDriverFactory = sDriverFactory;
-
- OUString sDriverTypeDisplayName;
- aURLPatternNode.getNodeValue("DriverTypeDisplayName") >>= sDriverTypeDisplayName;
- OSL_ENSURE(!sDriverTypeDisplayName.isEmpty(),"No valid DriverTypeDisplayName property!");
- if ( !sDriverTypeDisplayName.isEmpty() )
- _rInstalledDriver.sDriverTypeDisplayName = sDriverTypeDisplayName;
-
- lcl_fillValues(aURLPatternNode,"Properties",_rInstalledDriver.aProperties);
- lcl_fillValues(aURLPatternNode,"Features",_rInstalledDriver.aFeatures);
- lcl_fillValues(aURLPatternNode,"MetaData",_rInstalledDriver.aMetaData);
- }
+ if ( !aURLPatternNode.isValid() )
+ return;
+
+ OUString sParentURLPattern;
+ aURLPatternNode.getNodeValue("ParentURLPattern") >>= sParentURLPattern;
+ if ( !sParentURLPattern.isEmpty() )
+ lcl_readURLPatternNode(_aInstalled,sParentURLPattern,_rInstalledDriver);
+
+ OUString sDriverFactory;
+ aURLPatternNode.getNodeValue("Driver") >>= sDriverFactory;
+ if ( !sDriverFactory.isEmpty() )
+ _rInstalledDriver.sDriverFactory = sDriverFactory;
+
+ OUString sDriverTypeDisplayName;
+ aURLPatternNode.getNodeValue("DriverTypeDisplayName") >>= sDriverTypeDisplayName;
+ OSL_ENSURE(!sDriverTypeDisplayName.isEmpty(),"No valid DriverTypeDisplayName property!");
+ if ( !sDriverTypeDisplayName.isEmpty() )
+ _rInstalledDriver.sDriverTypeDisplayName = sDriverTypeDisplayName;
+
+ lcl_fillValues(aURLPatternNode,"Properties",_rInstalledDriver.aProperties);
+ lcl_fillValues(aURLPatternNode,"Features",_rInstalledDriver.aFeatures);
+ lcl_fillValues(aURLPatternNode,"MetaData",_rInstalledDriver.aMetaData);
}
}
diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
index d30bd85b4fab..7d3d34891783 100644
--- a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+++ b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
@@ -737,98 +737,98 @@ ORowSetValueDecoratorRef const & ODatabaseMetaDataResultSet::getQuoteValue()
void SAL_CALL ODatabaseMetaDataResultSet::initialize( const Sequence< Any >& _aArguments )
{
- if ( _aArguments.getLength() == 2 )
+ if ( _aArguments.getLength() != 2 )
+ return;
+
+ sal_Int32 nResultSetType = 0;
+ if ( !(_aArguments[0] >>= nResultSetType))
+ return;
+
+ setType(static_cast<MetaDataResultSetType>(nResultSetType));
+ Sequence< Sequence<Any> > aRows;
+ if ( !(_aArguments[1] >>= aRows) )
+ return;
+
+ ORows aRowsToSet;
+ const Sequence<Any>* pRowsIter = aRows.getConstArray();
+ const Sequence<Any>* pRowsEnd = pRowsIter + aRows.getLength();
+ for (; pRowsIter != pRowsEnd;++pRowsIter)
{
- sal_Int32 nResultSetType = 0;
- if ( _aArguments[0] >>= nResultSetType)
+ ORow aRowToSet;
+ const Any* pRowIter = pRowsIter->getConstArray();
+ const Any* pRowEnd = pRowIter + pRowsIter->getLength();
+ for (; pRowIter != pRowEnd;++pRowIter)
{
- setType(static_cast<MetaDataResultSetType>(nResultSetType));
- Sequence< Sequence<Any> > aRows;
- if ( _aArguments[1] >>= aRows )
+ ORowSetValueDecoratorRef aValue;
+ switch( pRowIter->getValueTypeClass() )
{
- ORows aRowsToSet;
- const Sequence<Any>* pRowsIter = aRows.getConstArray();
- const Sequence<Any>* pRowsEnd = pRowsIter + aRows.getLength();
- for (; pRowsIter != pRowsEnd;++pRowsIter)
- {
- ORow aRowToSet;
- const Any* pRowIter = pRowsIter->getConstArray();
- const Any* pRowEnd = pRowIter + pRowsIter->getLength();
- for (; pRowIter != pRowEnd;++pRowIter)
+ case TypeClass_BOOLEAN:
{
- ORowSetValueDecoratorRef aValue;
- switch( pRowIter->getValueTypeClass() )
- {
- case TypeClass_BOOLEAN:
- {
- bool bValue = false;
- *pRowIter >>= bValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(bValue));
- }
- break;
- case TypeClass_BYTE:
- {
- sal_Int8 nValue(0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_SHORT:
- case TypeClass_UNSIGNED_SHORT:
- {
- sal_Int16 nValue(0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_LONG:
- case TypeClass_UNSIGNED_LONG:
- {
- sal_Int32 nValue(0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_HYPER:
- case TypeClass_UNSIGNED_HYPER:
- {
- sal_Int64 nValue(0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_FLOAT:
- {
- float nValue(0.0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_DOUBLE:
- {
- double nValue(0.0);
- *pRowIter >>= nValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
- }
- break;
- case TypeClass_STRING:
- {
- OUString sValue;
- *pRowIter >>= sValue;
- aValue = new ORowSetValueDecorator(ORowSetValue(sValue));
- }
- break;
- default:
- break;
- }
- aRowToSet.push_back(aValue);
+ bool bValue = false;
+ *pRowIter >>= bValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(bValue));
}
- aRowsToSet.push_back(aRowToSet);
- } // for (; pRowsIter != pRowsEnd;++pRowsIter
- setRows(aRowsToSet);
+ break;
+ case TypeClass_BYTE:
+ {
+ sal_Int8 nValue(0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_SHORT:
+ case TypeClass_UNSIGNED_SHORT:
+ {
+ sal_Int16 nValue(0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_LONG:
+ case TypeClass_UNSIGNED_LONG:
+ {
+ sal_Int32 nValue(0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_HYPER:
+ case TypeClass_UNSIGNED_HYPER:
+ {
+ sal_Int64 nValue(0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_FLOAT:
+ {
+ float nValue(0.0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_DOUBLE:
+ {
+ double nValue(0.0);
+ *pRowIter >>= nValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(nValue));
+ }
+ break;
+ case TypeClass_STRING:
+ {
+ OUString sValue;
+ *pRowIter >>= sValue;
+ aValue = new ORowSetValueDecorator(ORowSetValue(sValue));
+ }
+ break;
+ default:
+ break;
}
+ aRowToSet.push_back(aValue);
}
- }
+ aRowsToSet.push_back(aRowToSet);
+ } // for (; pRowsIter != pRowsEnd;++pRowsIter
+ setRows(aRowsToSet);
}
// XServiceInfo
diff --git a/connectivity/source/commontools/FValue.cxx b/connectivity/source/commontools/FValue.cxx
index 828419b3efff..2f1cabbd4520 100644
--- a/connectivity/source/commontools/FValue.cxx
+++ b/connectivity/source/commontools/FValue.cxx
@@ -260,64 +260,64 @@ void ORowSetValue::setTypeKind(sal_Int32 _eType)
void ORowSetValue::free() noexcept
{
- if(!m_bNull)
+ if(m_bNull)
+ return;
+
+ switch(m_eTypeKind)
{
- switch(m_eTypeKind)
- {
- case DataType::CHAR:
- case DataType::VARCHAR:
- case DataType::DECIMAL:
- case DataType::NUMERIC:
- case DataType::LONGVARCHAR:
- OSL_ENSURE(m_aValue.m_pString,"String pointer is null!");
- rtl_uString_release(m_aValue.m_pString);
- m_aValue.m_pString = nullptr;
- break;
- case DataType::DATE:
- delete static_cast<css::util::Date*>(m_aValue.m_pValue);
- m_aValue.m_pValue = nullptr;
- break;
- case DataType::TIME:
- delete static_cast<css::util::Time*>(m_aValue.m_pValue);
- m_aValue.m_pValue = nullptr;
- break;
- case DataType::TIMESTAMP:
- delete static_cast<css::util::DateTime*>(m_aValue.m_pValue);
- m_aValue.m_pValue = nullptr;
- break;
- case DataType::BINARY:
- case DataType::VARBINARY:
- case DataType::LONGVARBINARY:
- delete static_cast<Sequence<sal_Int8>*>(m_aValue.m_pValue);
- m_aValue.m_pValue = nullptr;
- break;
- case DataType::BLOB:
- case DataType::CLOB:
- case DataType::OBJECT:
+ case DataType::CHAR:
+ case DataType::VARCHAR:
+ case DataType::DECIMAL:
+ case DataType::NUMERIC:
+ case DataType::LONGVARCHAR:
+ OSL_ENSURE(m_aValue.m_pString,"String pointer is null!");
+ rtl_uString_release(m_aValue.m_pString);
+ m_aValue.m_pString = nullptr;
+ break;
+ case DataType::DATE:
+ delete static_cast<css::util::Date*>(m_aValue.m_pValue);
+ m_aValue.m_pValue = nullptr;
+ break;
+ case DataType::TIME:
+ delete static_cast<css::util::Time*>(m_aValue.m_pValue);
+ m_aValue.m_pValue = nullptr;
+ break;
+ case DataType::TIMESTAMP:
+ delete static_cast<css::util::DateTime*>(m_aValue.m_pValue);
+ m_aValue.m_pValue = nullptr;
+ break;
+ case DataType::BINARY:
+ case DataType::VARBINARY:
+ case DataType::LONGVARBINARY:
+ delete static_cast<Sequence<sal_Int8>*>(m_aValue.m_pValue);
+ m_aValue.m_pValue = nullptr;
+ break;
+ case DataType::BLOB:
+ case DataType::CLOB:
+ case DataType::OBJECT:
+ delete static_cast<Any*>(m_aValue.m_pValue);
+ m_aValue.m_pValue = nullptr;
+ break;
+ case DataType::BIT:
+ case DataType::TINYINT:
+ case DataType::SMALLINT:
+ case DataType::INTEGER:
+ case DataType::BIGINT:
+ case DataType::BOOLEAN:
+ case DataType::FLOAT:
+ case DataType::DOUBLE:
+ case DataType::REAL:
+ break;
+ default:
+ if ( m_aValue.m_pValue )
+ {
delete static_cast<Any*>(m_aValue.m_pValue);
m_aValue.m_pValue = nullptr;
- break;
- case DataType::BIT:
- case DataType::TINYINT:
- case DataType::SMALLINT:
- case DataType::INTEGER:
- case DataType::BIGINT:
- case DataType::BOOLEAN:
- case DataType::FLOAT:
- case DataType::DOUBLE:
- case DataType::REAL:
- break;
- default:
- if ( m_aValue.m_pValue )
- {
- delete static_cast<Any*>(m_aValue.m_pValue);
- m_aValue.m_pValue = nullptr;
- }
- break;
+ }
+ break;
- }
- m_bNull = true;
}
+ m_bNull = true;
}
ORowSetValue& ORowSetValue::operator=(const ORowSetValue& _rRH)
@@ -2046,62 +2046,62 @@ css::util::DateTime ORowSetValue::getDateTime() const
void ORowSetValue::setSigned(bool _bMod)
{
- if ( m_bSigned != _bMod )
+ if ( m_bSigned == _bMod )
+ return;
+
+ m_bSigned = _bMod;
+ if ( m_bNull )
+ return;
+
+ sal_Int32 nType = m_eTypeKind;
+ switch(m_eTypeKind)
{
- m_bSigned = _bMod;
- if ( !m_bNull )
+ case DataType::TINYINT:
+ if ( m_bSigned )
+ (*this) = getInt8();
+ else
+ {
+ m_bSigned = !m_bSigned;
+ (*this) = getInt16();
+ m_bSigned = !m_bSigned;
+ }
+ break;
+ case DataType::SMALLINT:
+ if ( m_bSigned )
+ (*this) = getInt16();
+ else
+ {
+ m_bSigned = !m_bSigned;
+ (*this) = getInt32();
+ m_bSigned = !m_bSigned;
+ }
+ break;
+ case DataType::INTEGER:
+ if ( m_bSigned )
+ (*this) = getInt32();
+ else
+ {
+ m_bSigned = !m_bSigned;
+ (*this) = getLong();
+ m_bSigned = !m_bSigned;
+ }
+ break;
+ case DataType::BIGINT:
{
- sal_Int32 nType = m_eTypeKind;
- switch(m_eTypeKind)
+ if ( m_bSigned )
{
- case DataType::TINYINT:
- if ( m_bSigned )
- (*this) = getInt8();
- else
- {
- m_bSigned = !m_bSigned;
- (*this) = getInt16();
- m_bSigned = !m_bSigned;
- }
- break;
- case DataType::SMALLINT:
- if ( m_bSigned )
- (*this) = getInt16();
- else
- {
- m_bSigned = !m_bSigned;
- (*this) = getInt32();
- m_bSigned = !m_bSigned;
- }
- break;
- case DataType::INTEGER:
- if ( m_bSigned )
- (*this) = getInt32();
- else
- {
- m_bSigned = !m_bSigned;
- (*this) = getLong();
- m_bSigned = !m_bSigned;
- }
- break;
- case DataType::BIGINT:
- {
- if ( m_bSigned )
- {
- auto nTmp = static_cast<sal_Int64>(m_aValue.m_uInt64);
- m_aValue.m_nInt64 = nTmp;
- }
- else
- {
- auto nTmp = static_cast<sal_uInt64>(m_aValue.m_nInt64);
- m_aValue.m_uInt64 = nTmp;
- }
- break;
- }
+ auto nTmp = static_cast<sal_Int64>(m_aValue.m_uInt64);
+ m_aValue.m_nInt64 = nTmp;
}
- m_eTypeKind = nType;
+ else
+ {
+ auto nTmp = static_cast<sal_uInt64>(m_aValue.m_nInt64);
+ m_aValue.m_uInt64 = nTmp;
+ }
+ break;
}
}
+ m_eTypeKind = nType;
}
diff --git a/connectivity/source/commontools/TColumnsHelper.cxx b/connectivity/source/commontools/TColumnsHelper.cxx
index 36061dc2fe3d..a97faeeb8b4e 100644
--- a/connectivity/source/commontools/TColumnsHelper.cxx
+++ b/connectivity/source/commontools/TColumnsHelper.cxx
@@ -186,21 +186,21 @@ sdbcx::ObjectType OColumnsHelper::appendObject( const OUString& _rForName, const
void OColumnsHelper::dropObject(sal_Int32 /*_nPos*/, const OUString& _sElementName)
{
OSL_ENSURE(m_pTable,"OColumnsHelper::dropByName: Table is null!");
- if ( m_pTable && !m_pTable->isNew() )
+ if ( !(m_pTable && !m_pTable->isNew()) )
+ return;
+
+ Reference<XDatabaseMetaData> xMetaData = m_pTable->getConnection()->getMetaData();
+ OUString aQuote = xMetaData->getIdentifierQuoteString( );
+ OUString aSql = "ALTER TABLE " +
+ ::dbtools::composeTableName( xMetaData, m_pTable, ::dbtools::EComposeRule::InTableDefinitions, true ) +
+ " DROP " +
+ ::dbtools::quoteName( aQuote,_sElementName);
+
+ Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
+ if ( xStmt.is() )
{
- Reference<XDatabaseMetaData> xMetaData = m_pTable->getConnection()->getMetaData();
- OUString aQuote = xMetaData->getIdentifierQuoteString( );
- OUString aSql = "ALTER TABLE " +
- ::dbtools::composeTableName( xMetaData, m_pTable, ::dbtools::EComposeRule::InTableDefinitions, true ) +
- " DROP " +
- ::dbtools::quoteName( aQuote,_sElementName);
-
- Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
- if ( xStmt.is() )
- {
- xStmt->execute(aSql);
- ::comphelper::disposeComponent(xStmt);
- }
+ xStmt->execute(aSql);
+ ::comphelper::disposeComponent(xStmt);
}
}
diff --git a/connectivity/source/commontools/TIndexes.cxx b/connectivity/source/commontools/TIndexes.cxx
index aeb9253b0885..f5cff00ec835 100644
--- a/connectivity/source/commontools/TIndexes.cxx
+++ b/connectivity/source/commontools/TIndexes.cxx
@@ -213,33 +213,33 @@ sdbcx::ObjectType OIndexesHelper::appendObject( const OUString& _rForName, const
void OIndexesHelper::dropObject(sal_Int32 /*_nPos*/,const OUString& _sElementName)
{
Reference< XConnection> xConnection = m_pTable->getConnection();
- if( xConnection.is() && !m_pTable->isNew())
+ if( !(xConnection.is() && !m_pTable->isNew()))
+ return;
+
+ if ( m_pTable->getIndexService().is() )
{
- if ( m_pTable->getIndexService().is() )
- {
- m_pTable->getIndexService()->dropIndex(m_pTable,_sElementName);
- }
- else
- {
- OUString aName,aSchema;
- sal_Int32 nLen = _sElementName.indexOf('.');
- if(nLen != -1)
- aSchema = _sElementName.copy(0,nLen);
- aName = _sElementName.copy(nLen+1);
+ m_pTable->getIndexService()->dropIndex(m_pTable,_sElementName);
+ }
+ else
+ {
+ OUString aName,aSchema;
+ sal_Int32 nLen = _sElementName.indexOf('.');
+ if(nLen != -1)
+ aSchema = _sElementName.copy(0,nLen);
+ aName = _sElementName.copy(nLen+1);
- OUString aSql( "DROP INDEX " );
+ OUString aSql( "DROP INDEX " );
- OUString aComposedName = dbtools::composeTableName( m_pTable->getMetaData(), m_pTable, ::dbtools::EComposeRule::InIndexDefinitions, true );
- OUString sIndexName = dbtools::composeTableName( m_pTable->getMetaData(), OUString(), aSchema, aName, true, ::dbtools::EComposeRule::InIndexDefinitions );
+ OUString aComposedName = dbtools::composeTableName( m_pTable->getMetaData(), m_pTable, ::dbtools::EComposeRule::InIndexDefinitions, true );
+ OUString sIndexName = dbtools::composeTableName( m_pTable->getMetaData(), OUString(), aSchema, aName, true, ::dbtools::EComposeRule::InIndexDefinitions );
- aSql += sIndexName + " ON " + aComposedName;
+ aSql += sIndexName + " ON " + aComposedName;
- Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
- if ( xStmt.is() )
- {
- xStmt->execute(aSql);
- ::comphelper::disposeComponent(xStmt);
- }
+ Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
+ if ( xStmt.is() )
+ {
+ xStmt->execute(aSql);
+ ::comphelper::disposeComponent(xStmt);
}
}
}
diff --git a/connectivity/source/commontools/TKeys.cxx b/connectivity/source/commontools/TKeys.cxx
index 57b49b6e8416..742a1832049a 100644
--- a/connectivity/source/commontools/TKeys.cxx
+++ b/connectivity/source/commontools/TKeys.cxx
@@ -264,43 +264,43 @@ OUString OKeysHelper::getDropForeignKey() const
void OKeysHelper::dropObject(sal_Int32 _nPos, const OUString& _sElementName)
{
Reference< XConnection> xConnection = m_pTable->getConnection();
- if ( xConnection.is() && !m_pTable->isNew() )
+ if ( !(xConnection.is() && !m_pTable->isNew()) )
+ return;
+
+ Reference<XPropertySet> xKey(getObject(_nPos),UNO_QUERY);
+ if ( m_pTable->getKeyService().is() )
+ {
+ m_pTable->getKeyService()->dropKey(m_pTable,xKey);
+ }
+ else
{
- Reference<XPropertySet> xKey(getObject(_nPos),UNO_QUERY);
- if ( m_pTable->getKeyService().is() )
+ OUStringBuffer aSql;
+ aSql.append("ALTER TABLE ");
+
+ aSql.append( composeTableName( m_pTable->getConnection()->getMetaData(), m_pTable,::dbtools::EComposeRule::InTableDefinitions, true ));
+
+ sal_Int32 nKeyType = KeyType::PRIMARY;
+ if ( xKey.is() )
{
- m_pTable->getKeyService()->dropKey(m_pTable,xKey);
+ ::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
+ xKey->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_TYPE)) >>= nKeyType;
+ }
+ if ( KeyType::PRIMARY == nKeyType )
+ {
+ aSql.append(" DROP PRIMARY KEY");
}
else
{
- OUStringBuffer aSql;
- aSql.append("ALTER TABLE ");
-
- aSql.append( composeTableName( m_pTable->getConnection()->getMetaData(), m_pTable,::dbtools::EComposeRule::InTableDefinitions, true ));
-
- sal_Int32 nKeyType = KeyType::PRIMARY;
- if ( xKey.is() )
- {
- ::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
- xKey->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_TYPE)) >>= nKeyType;
- }
- if ( KeyType::PRIMARY == nKeyType )
- {
- aSql.append(" DROP PRIMARY KEY");
- }
- else
- {
- aSql.append(getDropForeignKey());
- const OUString aQuote = m_pTable->getConnection()->getMetaData()->getIdentifierQuoteString();
- aSql.append( ::dbtools::quoteName( aQuote,_sElementName) );
- }
+ aSql.append(getDropForeignKey());
+ const OUString aQuote = m_pTable->getConnection()->getMetaData()->getIdentifierQuoteString();
+ aSql.append( ::dbtools::quoteName( aQuote,_sElementName) );
+ }
- Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
- if ( xStmt.is() )
- {
- xStmt->execute(aSql.makeStringAndClear());
- ::comphelper::disposeComponent(xStmt);
- }
+ Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( );
+ if ( xStmt.is() )
+ {
+ xStmt->execute(aSql.makeStringAndClear());
+ ::comphelper::disposeComponent(xStmt);
}
}
}
diff --git a/connectivity/source/commontools/TTableHelper.cxx b/connectivity/source/commontools/TTableHelper.cxx
index 246becfa6ae0..e22740144316 100644
--- a/connectivity/source/commontools/TTableHelper.cxx
+++ b/connectivity/source/commontools/TTableHelper.cxx
@@ -348,54 +348,54 @@ void OTableHelper::refreshForeignKeys(::std::vector< OUString>& _rNames)
Reference< XResultSet > xResult = getMetaData()->getImportedKeys(aCatalog,m_SchemaName,m_Name);
Reference< XRow > xRow(xResult,UNO_QUERY);
- if ( xRow.is() )
+ if ( !xRow.is() )
+ return;
+
+ std::shared_ptr<sdbcx::KeyProperties> pKeyProps;
+ OUString aName,sCatalog,aSchema,sOldFKName;
+ while( xResult->next() )
{
- std::shared_ptr<sdbcx::KeyProperties> pKeyProps;
- OUString aName,sCatalog,aSchema,sOldFKName;
- while( xResult->next() )
+ // this must be outside the "if" because we have to call in a right order
+ sCatalog = xRow->getString(1);
+ if ( xRow->wasNull() )
+ sCatalog.clear();
+ aSchema = xRow->getString(2);
+ aName = xRow->getString(3);
+
+ const OUString sForeignKeyColumn = xRow->getString(8);
+ const sal_Int32 nUpdateRule = xRow->getInt(10);
+ const sal_Int32 nDeleteRule = xRow->getInt(11);
+ const OUString sFkName = xRow->getString(12);
+
+ if ( !sFkName.isEmpty() && !xRow->wasNull() )
{
- // this must be outside the "if" because we have to call in a right order
- sCatalog = xRow->getString(1);
- if ( xRow->wasNull() )
- sCatalog.clear();
- aSchema = xRow->getString(2);
- aName = xRow->getString(3);
-
- const OUString sForeignKeyColumn = xRow->getString(8);
- const sal_Int32 nUpdateRule = xRow->getInt(10);
- const sal_Int32 nDeleteRule = xRow->getInt(11);
- const OUString sFkName = xRow->getString(12);
-
- if ( !sFkName.isEmpty() && !xRow->wasNull() )
+ if ( sOldFKName != sFkName )
{
- if ( sOldFKName != sFkName )
+ if ( pKeyProps.get() )
+ m_pImpl->m_aKeys.emplace(sOldFKName,pKeyProps);
+
+ const OUString sReferencedName = ::dbtools::composeTableName(getMetaData(),sCatalog,aSchema,aName,false,::dbtools::EComposeRule::InDataManipulation);
+ pKeyProps = std::make_shared<sdbcx::KeyProperties>(sReferencedName,KeyType::FOREIGN,nUpdateRule,nDeleteRule);
+ pKeyProps->m_aKeyColumnNames.push_back(sForeignKeyColumn);
+ _rNames.push_back(sFkName);
+ if ( m_pTables->hasByName(sReferencedName) )
{
- if ( pKeyProps.get() )
- m_pImpl->m_aKeys.emplace(sOldFKName,pKeyProps);
-
- const OUString sReferencedName = ::dbtools::composeTableName(getMetaData(),sCatalog,aSchema,aName,false,::dbtools::EComposeRule::InDataManipulation);
- pKeyProps = std::make_shared<sdbcx::KeyProperties>(sReferencedName,KeyType::FOREIGN,nUpdateRule,nDeleteRule);
- pKeyProps->m_aKeyColumnNames.push_back(sForeignKeyColumn);
- _rNames.push_back(sFkName);
- if ( m_pTables->hasByName(sReferencedName) )
- {
- if ( !m_pImpl->m_xTablePropertyListener.is() )
- m_pImpl->m_xTablePropertyListener = new OTableContainerListener(this);
- m_pTables->addContainerListener(m_pImpl->m_xTablePropertyListener.get());
- m_pImpl->m_xTablePropertyListener->add(sReferencedName);
- } // if ( m_pTables->hasByName(sReferencedName) )
- sOldFKName = sFkName;
- } // if ( sOldFKName != sFkName )
- else if ( pKeyProps.get() )
- {
- pKeyProps->m_aKeyColumnNames.push_back(sForeignKeyColumn);
- }
+ if ( !m_pImpl->m_xTablePropertyListener.is() )
+ m_pImpl->m_xTablePropertyListener = new OTableContainerListener(this);
+ m_pTables->addContainerListener(m_pImpl->m_xTablePropertyListener.get());
+ m_pImpl->m_xTablePropertyListener->add(sReferencedName);
+ } // if ( m_pTables->hasByName(sReferencedName) )
+ sOldFKName = sFkName;
+ } // if ( sOldFKName != sFkName )
+ else if ( pKeyProps.get() )
+ {
+ pKeyProps->m_aKeyColumnNames.push_back(sForeignKeyColumn);
}
- } // while( xResult->next() )
- if ( pKeyProps.get() )
- m_pImpl->m_aKeys.emplace(sOldFKName,pKeyProps);
- ::comphelper::disposeComponent(xResult);
- }
+ }
+ } // while( xResult->next() )
+ if ( pKeyProps.get() )
+ m_pImpl->m_aKeys.emplace(sOldFKName,pKeyProps);
+ ::comphelper::disposeComponent(xResult);
}
void OTableHelper::refreshKeys()
diff --git a/connectivity/source/commontools/conncleanup.cxx b/connectivity/source/commontools/conncleanup.cxx
index 922551c470af..d0198df5f494 100644
--- a/connectivity/source/commontools/conncleanup.cxx
+++ b/connectivity/source/commontools/conncleanup.cxx
@@ -129,51 +129,52 @@ namespace dbtools
void SAL_CALL OAutoConnectionDisposer::propertyChange( const PropertyChangeEvent& _rEvent )
{
- if ( _rEvent.PropertyName == ACTIVE_CONNECTION_PROPERTY_NAME )
- { // somebody set a new ActiveConnection
+ if ( _rEvent.PropertyName != ACTIVE_CONNECTION_PROPERTY_NAME )
+ return;
+
+// somebody set a new ActiveConnection
- Reference< XConnection > xNewConnection;
- _rEvent.NewValue >>= xNewConnection;
+ Reference< XConnection > xNewConnection;
+ _rEvent.NewValue >>= xNewConnection;
- if ( isRowSetListening() )
+ if ( isRowSetListening() )
+ {
+ // we're listening at the row set, this means that the row set does not have our
+ // m_xOriginalConnection as active connection anymore
+ // So there are two possibilities
+ // a. somebody sets a new connection which is not our original one
+ // b. somebody sets a new connection, which is exactly the original one
+ // a. we're not interested in a, but in b: In this case, we simply need to move to the state
+ // we had originally: listen for property changes, do not listen for row set changes, and
+ // do not dispose the connection until the row set does not need it anymore
+ if ( xNewConnection.get() == m_xOriginalConnection.get() )
{
- // we're listening at the row set, this means that the row set does not have our
- // m_xOriginalConnection as active connection anymore
- // So there are two possibilities
- // a. somebody sets a new connection which is not our original one
- // b. somebody sets a new connection, which is exactly the original one
- // a. we're not interested in a, but in b: In this case, we simply need to move to the state
- // we had originally: listen for property changes, do not listen for row set changes, and
- // do not dispose the connection until the row set does not need it anymore
- if ( xNewConnection.get() == m_xOriginalConnection.get() )
- {
- stopRowSetListening();
- }
+ stopRowSetListening();
}
- else
+ }
+ else
+ {
+ // start listening at the row set. We're allowed to dispose the old connection as soon
+ // as the RowSet changed
+
+ // Unfortunately, the our database form implementations sometimes fire the change of their
+ // ActiveConnection twice. This is an error in forms/source/component/DatabaseForm.cxx, but
+ // changing this would require incompatible changes we can't do for a while.
+ // So for the moment, we have to live with it here.
+ //
+ // The only scenario where this doubled notification causes problems is when the connection
+ // of the form is reset to the one we're responsible for (m_xOriginalConnection), so we
+ // check this here.
+ //
+ // Yes, this is a HACK :(
+ if ( xNewConnection.get() != m_xOriginalConnection.get() )
{
- // start listening at the row set. We're allowed to dispose the old connection as soon
- // as the RowSet changed
-
- // Unfortunately, the our database form implementations sometimes fire the change of their
- // ActiveConnection twice. This is an error in forms/source/component/DatabaseForm.cxx, but
- // changing this would require incompatible changes we can't do for a while.
- // So for the moment, we have to live with it here.
- //
- // The only scenario where this doubled notification causes problems is when the connection
- // of the form is reset to the one we're responsible for (m_xOriginalConnection), so we
- // check this here.
- //
- // Yes, this is a HACK :(
- if ( xNewConnection.get() != m_xOriginalConnection.get() )
- {
#if OSL_DEBUG_LEVEL > 0
- Reference< XConnection > xOldConnection;
- _rEvent.OldValue >>= xOldConnection;
- OSL_ENSURE( xOldConnection.get() == m_xOriginalConnection.get(), "OAutoConnectionDisposer::propertyChange: unexpected (original) property value!" );
+ Reference< XConnection > xOldConnection;
+ _rEvent.OldValue >>= xOldConnection;
+ OSL_ENSURE( xOldConnection.get() == m_xOriginalConnection.get(), "OAutoConnectionDisposer::propertyChange: unexpected (original) property value!" );
#endif
- startRowSetListening();
- }
+ startRowSetListening();
}
}
}
diff --git a/connectivity/source/commontools/dbtools.cxx b/connectivity/source/commontools/dbtools.cxx
index c0b88f1c7ba1..36161735ebb2 100644
--- a/connectivity/source/commontools/dbtools.cxx
+++ b/connectivity/source/commontools/dbtools.cxx
@@ -1696,76 +1696,76 @@ void askForParameters(const Reference< XSingleSelectQueryComposer >& _xComposer,
Reference<XIndexAccess> xParamsAsIndicies = xParameters.is() ? xParameters->getParameters() : Reference<XIndexAccess>();
sal_Int32 nParamCount = xParamsAsIndicies.is() ? xParamsAsIndicies->getCount() : 0;
std::vector<bool, std::allocator<bool> > aNewParameterSet( _aParametersSet );
- if ( nParamCount && std::count(aNewParameterSet.begin(),aNewParameterSet.end(),true) != nParamCount )
- {
- static const OUString PROPERTY_NAME(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME));
- aNewParameterSet.resize(nParamCount ,false);
- typedef std::map< OUString, std::vector<sal_Int32> > TParameterPositions;
- TParameterPositions aParameterNames;
- for(sal_Int32 i = 0; i < nParamCount; ++i)
- {
- Reference<XPropertySet> xParam(xParamsAsIndicies->getByIndex(i),UNO_QUERY);
- OUString sName;
- xParam->getPropertyValue(PROPERTY_NAME) >>= sName;
+ if ( !(nParamCount && std::count(aNewParameterSet.begin(),aNewParameterSet.end(),true) != nParamCount) )
+ return;
- TParameterPositions::const_iterator aFind = aParameterNames.find(sName);
- if ( aFind != aParameterNames.end() )
- aNewParameterSet[i] = true;
- aParameterNames[sName].push_back(i+1);
- }
- // build an interaction request
- // two continuations (Ok and Cancel)
- OInteractionAbort* pAbort = new OInteractionAbort;
- OParameterContinuation* pParams = new OParameterContinuation;
- // the request
- ParametersRequest aRequest;
- Reference<XIndexAccess> xWrappedParameters = new OParameterWrapper(aNewParameterSet,xParamsAsIndicies);
- aRequest.Parameters = xWrappedParameters;
- aRequest.Connection = _xConnection;
- OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
- Reference< XInteractionRequest > xRequest(pRequest);
- // some knittings
- pRequest->addContinuation(pAbort);
- pRequest->addContinuation(pParams);
-
- // execute the request
- _rxHandler->handle(xRequest);
-
- if (!pParams->wasSelected())
- {
- // canceled by the user (i.e. (s)he canceled the dialog)
- RowSetVetoException e;
- e.ErrorCode = ParameterInteractionCancelled;
- throw e;
- }
+ static const OUString PROPERTY_NAME(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME));
+ aNewParameterSet.resize(nParamCount ,false);
+ typedef std::map< OUString, std::vector<sal_Int32> > TParameterPositions;
+ TParameterPositions aParameterNames;
+ for(sal_Int32 i = 0; i < nParamCount; ++i)
+ {
+ Reference<XPropertySet> xParam(xParamsAsIndicies->getByIndex(i),UNO_QUERY);
+ OUString sName;
+ xParam->getPropertyValue(PROPERTY_NAME) >>= sName;
+
+ TParameterPositions::const_iterator aFind = aParameterNames.find(sName);
+ if ( aFind != aParameterNames.end() )
+ aNewParameterSet[i] = true;
+ aParameterNames[sName].push_back(i+1);
+ }
+ // build an interaction request
+ // two continuations (Ok and Cancel)
+ OInteractionAbort* pAbort = new OInteractionAbort;
+ OParameterContinuation* pParams = new OParameterContinuation;
+ // the request
+ ParametersRequest aRequest;
+ Reference<XIndexAccess> xWrappedParameters = new OParameterWrapper(aNewParameterSet,xParamsAsIndicies);
+ aRequest.Parameters = xWrappedParameters;
+ aRequest.Connection = _xConnection;
+ OInteractionRequest* pRequest = new OInteractionRequest(makeAny(aRequest));
+ Reference< XInteractionRequest > xRequest(pRequest);
+ // some knittings
+ pRequest->addContinuation(pAbort);
+ pRequest->addContinuation(pParams);
+
+ // execute the request
+ _rxHandler->handle(xRequest);
+
+ if (!pParams->wasSelected())
+ {
+ // canceled by the user (i.e. (s)he canceled the dialog)
+ RowSetVetoException e;
+ e.ErrorCode = ParameterInteractionCancelled;
+ throw e;
+ }
- // now transfer the values from the continuation object to the parameter columns
- Sequence< PropertyValue > aFinalValues = pParams->getValues();
- const PropertyValue* pFinalValues = aFinalValues.getConstArray();
- for (sal_Int32 i=0; i<aFinalValues.getLength(); ++i, ++pFinalValues)
+ // now transfer the values from the continuation object to the parameter columns
+ Sequence< PropertyValue > aFinalValues = pParams->getValues();
+ const PropertyValue* pFinalValues = aFinalValues.getConstArray();
+ for (sal_Int32 i=0; i<aFinalValues.getLength(); ++i, ++pFinalValues)
+ {
+ Reference< XPropertySet > xParamColumn(xWrappedParameters->getByIndex(i),UNO_QUERY);
+ if (xParamColumn.is())
{
- Reference< XPropertySet > xParamColumn(xWrappedParameters->getByIndex(i),UNO_QUERY);
- if (xParamColumn.is())
+ OUString sName;
+ xParamColumn->getPropertyValue(PROPERTY_NAME) >>= sName;
+ OSL_ENSURE(sName == pFinalValues->Name, "::dbaui::askForParameters: inconsistent parameter names!");
+
+ // determine the field type and ...
+ sal_Int32 nParamType = 0;
+ xParamColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= nParamType;
+ // ... the scale of the parameter column
+ sal_Int32 nScale = 0;
+ if (hasProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE), xParamColumn))
+ xParamColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)) >>= nScale;
+ // (the index of the parameters is one-based)
+ TParameterPositions::const_iterator aFind = aParameterNames.find(pFinalValues->Name);
+ for(const auto& rItem : aFind->second)
{
- OUString sName;
- xParamColumn->getPropertyValue(PROPERTY_NAME) >>= sName;
- OSL_ENSURE(sName == pFinalValues->Name, "::dbaui::askForParameters: inconsistent parameter names!");
-
- // determine the field type and ...
- sal_Int32 nParamType = 0;
- xParamColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= nParamType;
- // ... the scale of the parameter column
- sal_Int32 nScale = 0;
- if (hasProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE), xParamColumn))
- xParamColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)) >>= nScale;
- // (the index of the parameters is one-based)
- TParameterPositions::const_iterator aFind = aParameterNames.find(pFinalValues->Name);
- for(const auto& rItem : aFind->second)
+ if ( _aParametersSet.empty() || !_aParametersSet[rItem-1] )
{
- if ( _aParametersSet.empty() || !_aParametersSet[rItem-1] )
- {
- _xParameters->setObjectWithInfo(rItem, pFinalValues->Value, nParamType, nScale);
- }
+ _xParameters->setObjectWithInfo(rItem, pFinalValues->Value, nParamType, nScale);
}
}
}
diff --git a/connectivity/source/drivers/calc/CTable.cxx b/connectivity/source/drivers/calc/CTable.cxx
index 1d905aa73ea8..045ea54190ac 100644
--- a/connectivity/source/drivers/calc/CTable.cxx
+++ b/connectivity/source/drivers/calc/CTable.cxx
@@ -65,21 +65,21 @@ static void lcl_UpdateArea( const Reference<XCellRange>& xUsedRange, sal_Int32&
// update rEndCol, rEndRow if any non-empty cell in xUsedRange is right/below
const Reference<XCellRangesQuery> xUsedQuery( xUsedRange, UNO_QUERY );
- if ( xUsedQuery.is() )
- {
- const sal_Int16 nContentFlags =
- CellFlags::STRING | CellFlags::VALUE | CellFlags::DATETIME | CellFlags::FORMULA | CellFlags::ANNOTATION;
+ if ( !xUsedQuery.is() )
+ return;
- const Reference<XSheetCellRanges> xUsedRanges = xUsedQuery->queryContentCells( nContentFlags );
- const Sequence<CellRangeAddress> aAddresses = xUsedRanges->getRangeAddresses();
+ const sal_Int16 nContentFlags =
+ CellFlags::STRING | CellFlags::VALUE | CellFlags::DATETIME | CellFlags::FORMULA | CellFlags::ANNOTATION;
- const sal_Int32 nCount = aAddresses.getLength();
- const CellRangeAddress* pData = aAddresses.getConstArray();
- for ( sal_Int32 i=0; i<nCount; i++ )
- {
- rEndCol = std::max(pData[i].EndColumn, rEndCol);
- rEndRow = std::max(pData[i].EndRow, rEndRow);
- }
+ const Reference<XSheetCellRanges> xUsedRanges = xUsedQuery->queryContentCells( nContentFlags );
+ const Sequence<CellRangeAddress> aAddresses = xUsedRanges->getRangeAddresses();
+
+ const sal_Int32 nCount = aAddresses.getLength();
+ const CellRangeAddress* pData = aAddresses.getConstArray();
+ for ( sal_Int32 i=0; i<nCount; i++ )
+ {
+ rEndCol = std::max(pData[i].EndColumn, rEndCol);
+ rEndRow = std::max(pData[i].EndRow, rEndRow);
}
}
@@ -237,64 +237,64 @@ static void lcl_GetColumnInfo( const Reference<XSpreadsheet>& xSheet, const Refe
Reference<XCell> xDataCell = lcl_GetUsedCell( xSheet, nDocColumn, nDataRow );
Reference<XPropertySet> xProp( xDataCell, UNO_QUERY );
- if ( xProp.is() )
+ if ( !xProp.is() )
+ return;
+
+ rCurrency = false; // set to true for currency below
+
+ const CellContentType eCellType = lcl_GetContentOrResultType( xDataCell );
+ // #i35178# use "text" type if there is any text cell in the column
+ if ( eCellType == CellContentType_TEXT || lcl_HasTextInColumn( xSheet, nDocColumn, nDataRow ) )
+ rDataType = DataType::VARCHAR;
+ else if ( eCellType == CellContentType_VALUE )
{
- rCurrency = false; // set to true for currency below
+ // get number format to distinguish between different types
- const CellContentType eCellType = lcl_GetContentOrResultType( xDataCell );
- // #i35178# use "text" type if there is any text cell in the column
- if ( eCellType == CellContentType_TEXT || lcl_HasTextInColumn( xSheet, nDocColumn, nDataRow ) )
- rDataType = DataType::VARCHAR;
- else if ( eCellType == CellContentType_VALUE )
+ sal_Int16 nNumType = NumberFormat::NUMBER;
+ try
{
- // get number format to distinguish between different types
+ sal_Int32 nKey = 0;
- sal_Int16 nNumType = NumberFormat::NUMBER;
- try
+ if ( xProp->getPropertyValue( "NumberFormat" ) >>= nKey )
{
- sal_Int32 nKey = 0;
-
- if ( xProp->getPropertyValue( "NumberFormat" ) >>= nKey )
+ const Reference<XPropertySet> xFormat = xFormats->getByKey( nKey );
+ if ( xFormat.is() )
{
- const Reference<XPropertySet> xFormat = xFormats->getByKey( nKey );
- if ( xFormat.is() )
- {
- xFormat->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE) ) >>= nNumType;
- }
+ xFormat->getPropertyValue( OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE) ) >>= nNumType;
}
}
- catch ( Exception& )
- {
- }
-
- if ( nNumType & NumberFormat::TEXT )
- rDataType = DataType::VARCHAR;
- else if ( nNumType & NumberFormat::NUMBER )
- rDataType = DataType::DECIMAL;
- else if ( nNumType & NumberFormat::CURRENCY )
- {
- rCurrency = true;
- rDataType = DataType::DECIMAL;
- }
- else if ( ( nNumType & NumberFormat::DATETIME ) == NumberFormat::DATETIME )
- {
- // NumberFormat::DATETIME is DATE | TIME
- rDataType = DataType::TIMESTAMP;
- }
- else if ( nNumType & NumberFormat::DATE )
- rDataType = DataType::DATE;
- else if ( nNumType & NumberFormat::TIME )
- rDataType = DataType::TIME;
- else if ( nNumType & NumberFormat::LOGICAL )
- rDataType = DataType::BIT;
- else
- rDataType = DataType::DECIMAL;
}
- else
+ catch ( Exception& )
{
- // whole column empty
+ }
+
+ if ( nNumType & NumberFormat::TEXT )
rDataType = DataType::VARCHAR;
+ else if ( nNumType & NumberFormat::NUMBER )
+ rDataType = DataType::DECIMAL;
+ else if ( nNumType & NumberFormat::CURRENCY )
+ {
+ rCurrency = true;
+ rDataType = DataType::DECIMAL;
}
+ else if ( ( nNumType & NumberFormat::DATETIME ) == NumberFormat::DATETIME )
+ {
+ // NumberFormat::DATETIME is DATE | TIME
+ rDataType = DataType::TIMESTAMP;
+ }
+ else if ( nNumType & NumberFormat::DATE )
+ rDataType = DataType::DATE;
+ else if ( nNumType & NumberFormat::TIME )
+ rDataType = DataType::TIME;
+ else if ( nNumType & NumberFormat::LOGICAL )
+ rDataType = DataType::BIT;
+ else
+ rDataType = DataType::DECIMAL;
+ }
+ else
+ {
+ // whole column empty
+ rDataType = DataType::VARCHAR;
}
}
@@ -310,104 +310,104 @@ static void lcl_SetValue( ORowSetValue& rValue, const Reference<XSpreadsheet>& x
++nDocRow;
const Reference<XCell> xCell = xSheet->getCellByPosition( nDocColumn, nDocRow );
- if ( xCell.is() )
+ if ( !xCell.is() )
+ return;
+
+ CellContentType eCellType = lcl_GetContentOrResultType( xCell );
+ switch (nType)
{
- CellContentType eCellType = lcl_GetContentOrResultType( xCell );
- switch (nType)
- {
- case DataType::VARCHAR:
- if ( eCellType == CellContentType_EMPTY )
- rValue.setNull();
- else
- {
- // #i25840# still let Calc convert numbers to text
- const Reference<XText> xText( xCell, UNO_QUERY );
- if ( xText.is() )
- rValue = xText->getString();
- }
- break;
- case DataType::DECIMAL:
- if ( eCellType == CellContentType_VALUE )
- rValue = xCell->getValue(); // double
- else
- rValue.setNull();
- break;
- case DataType::BIT:
- if ( eCellType == CellContentType_VALUE )
- rValue = xCell->getValue() != 0.0;
- else
- rValue.setNull();
- break;
- case DataType::DATE:
- if ( eCellType == CellContentType_VALUE )
- {
- ::Date aDate( rNullDate );
- aDate.AddDays(::rtl::math::approxFloor( xCell->getValue() ));
- rValue = aDate.GetUNODate();
- }
- else
- rValue.setNull();
- break;
- case DataType::TIME:
- if ( eCellType == CellContentType_VALUE )
+ case DataType::VARCHAR:
+ if ( eCellType == CellContentType_EMPTY )
+ rValue.setNull();
+ else
+ {
+ // #i25840# still let Calc convert numbers to text
+ const Reference<XText> xText( xCell, UNO_QUERY );
+ if ( xText.is() )
+ rValue = xText->getString();
+ }
+ break;
+ case DataType::DECIMAL:
+ if ( eCellType == CellContentType_VALUE )
+ rValue = xCell->getValue(); // double
+ else
+ rValue.setNull();
+ break;
+ case DataType::BIT:
+ if ( eCellType == CellContentType_VALUE )
+ rValue = xCell->getValue() != 0.0;
+ else
+ rValue.setNull();
+ break;
+ case DataType::DATE:
+ if ( eCellType == CellContentType_VALUE )
+ {
+ ::Date aDate( rNullDate );
+ aDate.AddDays(::rtl::math::approxFloor( xCell->getValue() ));
+ rValue = aDate.GetUNODate();
+ }
+ else
+ rValue.setNull();
+ break;
+ case DataType::TIME:
+ if ( eCellType == CellContentType_VALUE )
+ {
+ double fCellVal = xCell->getValue();
+ double fTime = fCellVal - rtl::math::approxFloor( fCellVal );
+ sal_Int64 nIntTime = static_cast<sal_Int64>(rtl::math::round( fTime * static_cast<double>(::tools::Time::nanoSecPerDay) ));
+ if ( nIntTime == ::tools::Time::nanoSecPerDay)
+ nIntTime = 0; // 23:59:59.9999999995 and above is 00:00:00.00
+ css::util::Time aTime;
+ aTime.NanoSeconds = static_cast<sal_uInt32>( nIntTime % ::tools::Time::nanoSecPerSec );
+ nIntTime /= ::tools::Time::nanoSecPerSec;
+ aTime.Seconds = static_cast<sal_uInt16>( nIntTime % 60 );
+ nIntTime /= 60;
+ aTime.Minutes = static_cast<sal_uInt16>( nIntTime % 60 );
+ nIntTime /= 60;
+ OSL_ENSURE( nIntTime < 24, "error in time calculation" );
+ aTime.Hours = static_cast<sal_uInt16>(nIntTime);
+ rValue = aTime;
+ }
+ else
+ rValue.setNull();
+ break;
+ case DataType::TIMESTAMP:
+ if ( eCellType == CellContentType_VALUE )
+ {
+ double fCellVal = xCell->getValue();
+ double fDays = ::rtl::math::approxFloor( fCellVal );
+ double fTime = fCellVal - fDays;
+ long nIntDays = static_cast<long>(fDays);
+ sal_Int64 nIntTime = ::rtl::math::round( fTime * static_cast<double>(::tools::Time::nanoSecPerDay) );
+ if ( nIntTime == ::tools::Time::nanoSecPerDay )
{
- double fCellVal = xCell->getValue();
- double fTime = fCellVal - rtl::math::approxFloor( fCellVal );
- sal_Int64 nIntTime = static_cast<sal_Int64>(rtl::math::round( fTime * static_cast<double>(::tools::Time::nanoSecPerDay) ));
- if ( nIntTime == ::tools::Time::nanoSecPerDay)
- nIntTime = 0; // 23:59:59.9999999995 and above is 00:00:00.00
- css::util::Time aTime;
- aTime.NanoSeconds = static_cast<sal_uInt32>( nIntTime % ::tools::Time::nanoSecPerSec );
- nIntTime /= ::tools::Time::nanoSecPerSec;
- aTime.Seconds = static_cast<sal_uInt16>( nIntTime % 60 );
- nIntTime /= 60;
- aTime.Minutes = static_cast<sal_uInt16>( nIntTime % 60 );
- nIntTime /= 60;
- OSL_ENSURE( nIntTime < 24, "error in time calculation" );
- aTime.Hours = static_cast<sal_uInt16>(nIntTime);
- rValue = aTime;
+ nIntTime = 0; // 23:59:59.9999999995 and above is 00:00:00.00
+ ++nIntDays; // (next day)
}
- else
- rValue.setNull();
- break;
- case DataType::TIMESTAMP:
- if ( eCellType == CellContentType_VALUE )
- {
- double fCellVal = xCell->getValue();
- double fDays = ::rtl::math::approxFloor( fCellVal );
- double fTime = fCellVal - fDays;
- long nIntDays = static_cast<long>(fDays);
- sal_Int64 nIntTime = ::rtl::math::round( fTime * static_cast<double>(::tools::Time::nanoSecPerDay) );
- if ( nIntTime == ::tools::Time::nanoSecPerDay )
- {
- nIntTime = 0; // 23:59:59.9999999995 and above is 00:00:00.00
- ++nIntDays; // (next day)
- }
- css::util::DateTime aDateTime;
+ css::util::DateTime aDateTime;
- aDateTime.NanoSeconds = static_cast<sal_uInt16>( nIntTime % ::tools::Time::nanoSecPerSec );
- nIntTime /= ::tools::Time::nanoSecPerSec;
- aDateTime.Seconds = static_cast<sal_uInt16>( nIntTime % 60 );
- nIntTime /= 60;
- aDateTime.Minutes = static_cast<sal_uInt16>( nIntTime % 60 );
- nIntTime /= 60;
- OSL_ENSURE( nIntTime < 24, "error in time calculation" );
- aDateTime.Hours = static_cast<sal_uInt16>(nIntTime);
+ aDateTime.NanoSeconds = static_cast<sal_uInt16>( nIntTime % ::tools::Time::nanoSecPerSec );
+ nIntTime /= ::tools::Time::nanoSecPerSec;
+ aDateTime.Seconds = static_cast<sal_uInt16>( nIntTime % 60 );
+ nIntTime /= 60;
+ aDateTime.Minutes = static_cast<sal_uInt16>( nIntTime % 60 );
+ nIntTime /= 60;
+ OSL_ENSURE( nIntTime < 24, "error in time calculation" );
+ aDateTime.Hours = static_cast<sal_uInt16>(nIntTime);
- ::Date aDate( rNullDate );
- aDate.AddDays( nIntDays );
- aDateTime.Day = aDate.GetDay();
- aDateTime.Month = aDate.GetMonth();
- aDateTime.Year = aDate.GetYear();
+ ::Date aDate( rNullDate );
+ aDate.AddDays( nIntDays );
+ aDateTime.Day = aDate.GetDay();
+ aDateTime.Month = aDate.GetMonth();
+ aDateTime.Year = aDate.GetYear();
- rValue = aDateTime;
- }
- else
- rValue.setNull();
- break;
- } // switch (nType)
- }
+ rValue = aDateTime;
+ }
+ else
+ rValue.setNull();
+ break;
+ } // switch (nType)
// rValue.setTypeKind(nType);
}
diff --git a/connectivity/source/drivers/dbase/DIndex.cxx b/connectivity/source/drivers/dbase/DIndex.cxx
index fdb782174412..d168de39eb77 100644
--- a/connectivity/source/drivers/dbase/DIndex.cxx
+++ b/connectivity/source/drivers/dbase/DIndex.cxx
@@ -130,30 +130,30 @@ ONDXPagePtr const & ODbaseIndex::getRoot()
void ODbaseIndex::openIndexFile()
{
- if(!m_pFileStream)
+ if(m_pFileStream)
+ return;
+
+ OUString sFile = getCompletePath();
+ if(UCBContentHelper::Exists(sFile))
{
- OUString sFile = getCompletePath();
- if(UCBContentHelper::Exists(sFile))
- {
- m_pFileStream = OFileTable::createStream_simpleError(sFile, StreamMode::READWRITE | StreamMode::NOCREATE | StreamMode::SHARE_DENYWRITE);
- if (!m_pFileStream)
- m_pFileStream = OFileTable::createStream_simpleError(sFile, StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
- if(m_pFileStream)
- {
- m_pFileStream->SetEndian(SvStreamEndian::LITTLE);
- m_pFileStream->SetBufferSize(DINDEX_PAGE_SIZE);
- (*m_pFileStream) >> *this;
- }
- }
- if(!m_pFileStream)
+ m_pFileStream = OFileTable::createStream_simpleError(sFile, StreamMode::READWRITE | StreamMode::NOCREATE | StreamMode::SHARE_DENYWRITE);
+ if (!m_pFileStream)
+ m_pFileStream = OFileTable::createStream_simpleError(sFile, StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
+ if(m_pFileStream)
{
- const OUString sError( m_pTable->getConnection()->getResources().getResourceStringWithSubstitution(
- STR_COULD_NOT_LOAD_FILE,
- "$filename$", sFile
- ) );
- ::dbtools::throwGenericSQLException( sError, *this );
+ m_pFileStream->SetEndian(SvStreamEndian::LITTLE);
+ m_pFileStream->SetBufferSize(DINDEX_PAGE_SIZE);
+ (*m_pFileStream) >> *this;
}
}
+ if(!m_pFileStream)
+ {
+ const OUString sError( m_pTable->getConnection()->getResources().getResourceStringWithSubstitution(
+ STR_COULD_NOT_LOAD_FILE,
+ "$filename$", sFile
+ ) );
+ ::dbtools::throwGenericSQLException( sError, *this );
+ }
}
std::unique_ptr<OIndexIterator> ODbaseIndex::createIterator()
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index bf2036b2ca19..ff01f3b6ba37 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -482,63 +482,63 @@ void ODbaseTable::construct()
m_pFileStream = createStream_simpleError( sFileName, StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
}
- if(m_pFileStream)
- {
- readHeader();
- if (HasMemoFields())
- {
- // Create Memo-Filename (.DBT):
- // nyi: Ugly for Unix and Mac!
+ if(!m_pFileStream)
+ return;
- if ( m_aHeader.type == FoxProMemo || m_aHeader.type == VisualFoxPro || m_aHeader.type == VisualFoxProAuto) // foxpro uses another extension
- aURL.SetExtension("fpt");
- else
- aURL.SetExtension("dbt");
+ readHeader();
+ if (HasMemoFields())
+ {
+ // Create Memo-Filename (.DBT):
+ // nyi: Ugly for Unix and Mac!
- // If the memo file isn't found, the data will be displayed anyhow.
- // However, updates can't be done
- // but the operation is executed
- m_pMemoStream = createStream_simpleError( aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), StreamMode::READWRITE | StreamMode::NOCREATE | StreamMode::SHARE_DENYWRITE);
- if ( !m_pMemoStream )
- {
- m_pMemoStream = createStream_simpleError( aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
- }
- if (m_pMemoStream)
- ReadMemoHeader();
- }
- fillColumns();
+ if ( m_aHeader.type == FoxProMemo || m_aHeader.type == VisualFoxPro || m_aHeader.type == VisualFoxProAuto) // foxpro uses another extension
+ aURL.SetExtension("fpt");
+ else
+ aURL.SetExtension("dbt");
- std::size_t nFileSize = lcl_getFileSize(*m_pFileStream);
- m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN);
- // seems to be empty or someone wrote bullshit into the dbase file
- // try and recover if m_aHeader.db_slng is sane
- if (m_aHeader.nbRecords == 0 && m_aHeader.recordLength)
+ // If the memo file isn't found, the data will be displayed anyhow.
+ // However, updates can't be done
+ // but the operation is executed
+ m_pMemoStream = createStream_simpleError( aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), StreamMode::READWRITE | StreamMode::NOCREATE | StreamMode::SHARE_DENYWRITE);
+ if ( !m_pMemoStream )
{
- std::size_t nRecords = (nFileSize-m_aHeader.headerLength)/m_aHeader.recordLength;
- if (nRecords > 0)
- m_aHeader.nbRecords = nRecords;
+ m_pMemoStream = createStream_simpleError( aURL.GetMainURL(INetURLObject::DecodeMechanism::NONE), StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
}
+ if (m_pMemoStream)
+ ReadMemoHeader();
+ }
+ fillColumns();
- // Buffersize dependent on the file size
- m_pFileStream->SetBufferSize(nFileSize > 1000000 ? 32768 :
- nFileSize > 100000 ? 16384 :
- nFileSize > 10000 ? 4096 : 1024);
+ std::size_t nFileSize = lcl_getFileSize(*m_pFileStream);
+ m_pFileStream->Seek(STREAM_SEEK_TO_BEGIN);
+ // seems to be empty or someone wrote bullshit into the dbase file
+ // try and recover if m_aHeader.db_slng is sane
+ if (m_aHeader.nbRecords == 0 && m_aHeader.recordLength)
+ {
+ std::size_t nRecords = (nFileSize-m_aHeader.headerLength)/m_aHeader.recordLength;
+ if (nRecords > 0)
+ m_aHeader.nbRecords = nRecords;
+ }
- if (m_pMemoStream)
- {
- // set the buffer exactly to the length of a record
- nFileSize = m_pMemoStream->TellEnd();
- m_pMemoStream->Seek(STREAM_SEEK_TO_BEGIN);
-
- // Buffersize dependent on the file size
- m_pMemoStream->SetBufferSize(nFileSize > 1000000 ? 32768 :
- nFileSize > 100000 ? 16384 :
- nFileSize > 10000 ? 4096 :
- m_aMemoHeader.db_size);
- }
+ // Buffersize dependent on the file size
+ m_pFileStream->SetBufferSize(nFileSize > 1000000 ? 32768 :
+ nFileSize > 100000 ? 16384 :
+ nFileSize > 10000 ? 4096 : 1024);
+
+ if (m_pMemoStream)
+ {
+ // set the buffer exactly to the length of a record
+ nFileSize = m_pMemoStream->TellEnd();
+ m_pMemoStream->Seek(STREAM_SEEK_TO_BEGIN);
- AllocBuffer();
+ // Buffersize dependent on the file size
+ m_pMemoStream->SetBufferSize(nFileSize > 1000000 ? 32768 :
+ nFileSize > 100000 ? 16384 :
+ nFileSize > 10000 ? 4096 :
+ m_aMemoHeader.db_size);
}
+
+ AllocBuffer();
}
void ODbaseTable::ReadMemoHeader()
diff --git a/connectivity/source/drivers/dbase/dindexnode.cxx b/connectivity/source/drivers/dbase/dindexnode.cxx
index ae105b8be512..1ac10800f0a9 100644
--- a/connectivity/source/drivers/dbase/dindexnode.cxx
+++ b/connectivity/source/drivers/dbase/dindexnode.cxx
@@ -997,24 +997,24 @@ void ONDXPage::SearchAndReplace(const ONDXKey& rSearch,
ONDXKey const & rReplace)
{
OSL_ENSURE(rSearch != rReplace,"Invalid here:rSearch == rReplace");
- if (rSearch != rReplace)
- {
- sal_uInt16 nPos = NODE_NOTFOUND;
- ONDXPage* pPage = this;
+ if (rSearch == rReplace)
+ return;
- while (pPage)
- {
- nPos = pPage->Search(rSearch);
- if (nPos != NODE_NOTFOUND)
- break;
- pPage = pPage->aParent;
- }
+ sal_uInt16 nPos = NODE_NOTFOUND;
+ ONDXPage* pPage = this;
- if (pPage)
- {
- (*pPage)[nPos].GetKey() = rReplace;
- pPage->SetModified(true);
- }
+ while (pPage)
+ {
+ nPos = pPage->Search(rSearch);
+ if (nPos != NODE_NOTFOUND)
+ break;
+ pPage = pPage->aParent;
+ }
+
+ if (pPage)
+ {
+ (*pPage)[nPos].GetKey() = rReplace;
+ pPage->SetModified(true);
}
}
diff --git a/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx b/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
index a5efdd2a0e6a..9eb6f1d34862 100644
--- a/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
+++ b/connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
@@ -90,53 +90,53 @@ namespace connectivity::evoab
static void
initFields()
{
- if( !pFields )
+ if( pFields )
+ return;
+
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( pFields )
+ return;
+
+ guint nProps;
+ ColumnProperty **pToBeFields;
+ GParamSpec **pProps;
+ nFields = 0;
+ pProps = g_object_class_list_properties
+ ( static_cast<GObjectClass *>(g_type_class_ref( E_TYPE_CONTACT )),
+ &nProps );
+ pToBeFields = g_new0(ColumnProperty *, (nProps + OTHER_ZIP)/* new column(s)*/ );
+ for ( guint i = 0; i < nProps; i++ )
{
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if( !pFields )
+ switch (pProps[i]->value_type)
{
- guint nProps;
- ColumnProperty **pToBeFields;
- GParamSpec **pProps;
- nFields = 0;
- pProps = g_object_class_list_properties
- ( static_cast<GObjectClass *>(g_type_class_ref( E_TYPE_CONTACT )),
- &nProps );
- pToBeFields = g_new0(ColumnProperty *, (nProps + OTHER_ZIP)/* new column(s)*/ );
- for ( guint i = 0; i < nProps; i++ )
+ case G_TYPE_STRING:
+ case G_TYPE_BOOLEAN:
{
- switch (pProps[i]->value_type)
+ bool bAdd = true;
+ const char *pName = g_param_spec_get_name( pProps[i] );
+ for (unsigned int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
{
- case G_TYPE_STRING:
- case G_TYPE_BOOLEAN:
+ if( !strcmp( pBlackList[j], pName ) )
{
- bool bAdd = true;
- const char *pName = g_param_spec_get_name( pProps[i] );
- for (unsigned int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
- {
- if( !strcmp( pBlackList[j], pName ) )
- {
- bAdd = false;
- break;
- }
- }
- if( bAdd )
- {
- pToBeFields[nFields]= g_new0(ColumnProperty,1);
- pToBeFields[nFields]->bIsSplittedValue=false;
- pToBeFields[ nFields++ ]->pField = g_param_spec_ref( pProps[i] );
- }
+ bAdd = false;
break;
}
- default:
- break;
}
+ if( bAdd )
+ {
+ pToBeFields[nFields]= g_new0(ColumnProperty,1);
+ pToBeFields[nFields]->bIsSplittedValue=false;
+ pToBeFields[ nFields++ ]->pField = g_param_spec_ref( pProps[i] );
+ }
+ break;
}
-
- splitColumn(pToBeFields);
- pFields = pToBeFields;
+ default:
+ break;
}
}
+
+ splitColumn(pToBeFields);
+ pFields = pToBeFields;
}
diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx
index 6d74583935ca..fc5b81923cb4 100644
--- a/connectivity/source/drivers/file/FPreparedStatement.cxx
+++ b/connectivity/source/drivers/file/FPreparedStatement.cxx
@@ -482,17 +482,17 @@ void OPreparedStatement::describeParameter()
{
std::vector< OSQLParseNode*> aParseNodes;
scanParameter(m_pParseTree,aParseNodes);
- if ( !aParseNodes.empty() )
+ if ( aParseNodes.empty() )
+ return;
+
+ // m_xParamColumns = new OSQLColumns();
+ const OSQLTables& rTabs = m_aSQLIterator.getTables();
+ if( !rTabs.empty() )
{
- // m_xParamColumns = new OSQLColumns();
- const OSQLTables& rTabs = m_aSQLIterator.getTables();
- if( !rTabs.empty() )
+ OSQLTable xTable = rTabs.begin()->second;
+ for (auto const& parseNode : aParseNodes)
{
- OSQLTable xTable = rTabs.begin()->second;
- for (auto const& parseNode : aParseNodes)
- {
- describeColumn(parseNode,parseNode->getParent()->getChild(0),xTable);
- }
+ describeColumn(parseNode,parseNode->getParent()->getChild(0),xTable);
}
}
}
@@ -501,36 +501,36 @@ void OPreparedStatement::initializeResultSet(OResultSet* pRS)
OStatement_Base::initializeResultSet(pRS);
// Substitute parameter (AssignValues and criteria):
- if (!m_xParamColumns->empty())
- {
- // begin with AssignValues
- sal_uInt16 nParaCount=0; // gives the current number of previously set Parameters
+ if (m_xParamColumns->empty())
+ return;
- // search for parameters to be substituted:
- size_t nCount = m_aAssignValues.is() ? m_aAssignValues->size() : 1; // 1 is important for the Criteria
- for (size_t j = 1; j < nCount; j++)
- {
- sal_uInt32 nParameter = (*m_aAssignValues).getParameterIndex(j);
- if (nParameter == SQL_NO_PARAMETER)
- continue; // this AssignValue is no Parameter
+ // begin with AssignValues
+ sal_uInt16 nParaCount=0; // gives the current number of previously set Parameters
- ++nParaCount; // now the Parameter is valid
- }
+ // search for parameters to be substituted:
+ size_t nCount = m_aAssignValues.is() ? m_aAssignValues->size() : 1; // 1 is important for the Criteria
+ for (size_t j = 1; j < nCount; j++)
+ {
+ sal_uInt32 nParameter = (*m_aAssignValues).getParameterIndex(j);
+ if (nParameter == SQL_NO_PARAMETER)
+ continue; // this AssignValue is no Parameter
- if (m_aParameterRow.is() && (m_xParamColumns->size()+1) != m_aParameterRow->size() )
+ ++nParaCount; // now the Parameter is valid
+ }
+
+ if (m_aParameterRow.is() && (m_xParamColumns->size()+1) != m_aParameterRow->size() )
+ {
+ sal_Int32 i = m_aParameterRow->size();
+ sal_Int32 nParamColumns = m_xParamColumns->size()+1;
+ m_aParameterRow->resize(nParamColumns);
+ for ( ;i < nParamColumns; ++i )
{
- sal_Int32 i = m_aParameterRow->size();
- sal_Int32 nParamColumns = m_xParamColumns->size()+1;
- m_aParameterRow->resize(nParamColumns);
- for ( ;i < nParamColumns; ++i )
- {
- if ( !(*m_aParameterRow)[i].is() )
- (*m_aParameterRow)[i] = new ORowSetValueDecorator;
- }
+ if ( !(*m_aParameterRow)[i].is() )
+ (*m_aParameterRow)[i] = new ORowSetValueDecorator;
}
- if (m_aParameterRow.is() && nParaCount < m_aParameterRow->size() )
- m_pSQLAnalyzer->bindParameterRow(m_aParameterRow);
}
+ if (m_aParameterRow.is() && nParaCount < m_aParameterRow->size() )
+ m_pSQLAnalyzer->bindParameterRow(m_aParameterRow);
}
void OPreparedStatement::parseParamterElem(const OUString& _sColumnName, OSQLParseNode* pRow_Value_Constructor_Elem)
diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx
index 3b8f69d6ab6e..d7f3d6bd2090 100644
--- a/connectivity/source/drivers/file/FResultSet.cxx
+++ b/connectivity/source/drivers/file/FResultSet.cxx
@@ -1472,40 +1472,40 @@ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow,
}
}
// in this case we got more select columns as columns exist in the table
- if ( _bSetColumnMapping && aSelectIters.size() != _rColMapping.size() )
- {
- Reference<XNameAccess> xNameAccess(_xNames,UNO_QUERY);
- Sequence< OUString > aSelectColumns = xNameAccess->getElementNames();
+ if ( !(_bSetColumnMapping && aSelectIters.size() != _rColMapping.size()) )
+ return;
- for ( OSQLColumns::iterator aIter = _rxColumns->begin();
- aIter != _rxColumns->end();
- ++aIter
- )
+ Reference<XNameAccess> xNameAccess(_xNames,UNO_QUERY);
+ Sequence< OUString > aSelectColumns = xNameAccess->getElementNames();
+
+ for ( OSQLColumns::iterator aIter = _rxColumns->begin();
+ aIter != _rxColumns->end();
+ ++aIter
+ )
+ {
+ if ( aSelectIters.end() == aSelectIters.find(aIter) )
{
- if ( aSelectIters.end() == aSelectIters.find(aIter) )
- {
- if ( (*aIter)->getPropertySetInfo()->hasPropertyByName(sRealName) )
- (*aIter)->getPropertyValue(sRealName) >>= sSelectColumnRealName;
- else
- (*aIter)->getPropertyValue(sName) >>= sSelectColumnRealName;
+ if ( (*aIter)->getPropertySetInfo()->hasPropertyByName(sRealName) )
+ (*aIter)->getPropertyValue(sRealName) >>= sSelectColumnRealName;
+ else
+ (*aIter)->getPropertyValue(sName) >>= sSelectColumnRealName;
- if ( xNameAccess->hasByName( sSelectColumnRealName ) )
+ if ( xNameAccess->hasByName( sSelectColumnRealName ) )
+ {
+ aSelectIters.emplace(aIter,true);
+ sal_Int32 nSelectColumnPos = aIter - _rxColumns->begin() + 1;
+ const OUString* pBegin = aSelectColumns.getConstArray();
+ const OUString* pEnd = pBegin + aSelectColumns.getLength();
+ for(sal_Int32 i=0;pBegin != pEnd;++pBegin,++i)
{
- aSelectIters.emplace(aIter,true);
- sal_Int32 nSelectColumnPos = aIter - _rxColumns->begin() + 1;
- const OUString* pBegin = aSelectColumns.getConstArray();
- const OUString* pEnd = pBegin + aSelectColumns.getLength();
- for(sal_Int32 i=0;pBegin != pEnd;++pBegin,++i)
+ if ( aCase(*pBegin, sSelectColumnRealName) )
{
- if ( aCase(*pBegin, sSelectColumnRealName) )
- {
- // the getXXX methods are 1-based ...
- sal_Int32 nTableColumnPos = i + 1;
- // get first table column is the bookmark column ...
- _rColMapping[nSelectColumnPos] = nTableColumnPos;
- (*_rSelectRow)[nSelectColumnPos] = (*_rRow)[nTableColumnPos];
- break;
- }
+ // the getXXX methods are 1-based ...
+ sal_Int32 nTableColumnPos = i + 1;
+ // get first table column is the bookmark column ...
+ _rColMapping[nSelectColumnPos] = nTableColumnPos;
+ (*_rSelectRow)[nSelectColumnPos] = (*_rRow)[nTableColumnPos];
+ break;
}
}
}
diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx
index 28eef44ff71e..08c4f7fdd844 100644
--- a/connectivity/source/drivers/file/FStatement.cxx
+++ b/connectivity/source/drivers/file/FStatement.cxx
@@ -310,25 +310,25 @@ void OStatement_Base::anylizeSQL()
m_pSQLAnalyzer->start(m_pParseTree);
const OSQLParseNode* pOrderbyClause = m_aSQLIterator.getOrderTree();
- if(pOrderbyClause)
+ if(!pOrderbyClause)
+ return;
+
+ OSQLParseNode * pOrderingSpecCommalist = pOrderbyClause->getChild(2);
+ OSL_ENSURE(SQL_ISRULE(pOrderingSpecCommalist,ordering_spec_commalist),"OResultSet: Error in Parse Tree");
+
+ for (size_t m = 0; m < pOrderingSpecCommalist->count(); m++)
{
- OSQLParseNode * pOrderingSpecCommalist = pOrderbyClause->getChild(2);
- OSL_ENSURE(SQL_ISRULE(pOrderingSpecCommalist,ordering_spec_commalist),"OResultSet: Error in Parse Tree");
+ OSQLParseNode * pOrderingSpec = pOrderingSpecCommalist->getChild(m);
+ OSL_ENSURE(SQL_ISRULE(pOrderingSpec,ordering_spec),"OResultSet: Error in Parse Tree");
+ OSL_ENSURE(pOrderingSpec->count() == 2,"OResultSet: Error in Parse Tree");
- for (size_t m = 0; m < pOrderingSpecCommalist->count(); m++)
+ OSQLParseNode * pColumnRef = pOrderingSpec->getChild(0);
+ if(!SQL_ISRULE(pColumnRef,column_ref))
{
- OSQLParseNode * pOrderingSpec = pOrderingSpecCommalist->getChild(m);
- OSL_ENSURE(SQL_ISRULE(pOrderingSpec,ordering_spec),"OResultSet: Error in Parse Tree");
- OSL_ENSURE(pOrderingSpec->count() == 2,"OResultSet: Error in Parse Tree");
-
- OSQLParseNode * pColumnRef = pOrderingSpec->getChild(0);
- if(!SQL_ISRULE(pColumnRef,column_ref))
- {
- throw SQLException();
- }
- OSQLParseNode * pAscendingDescending = pOrderingSpec->getChild(1);
- setOrderbyColumn(pColumnRef,pAscendingDescending);
+ throw SQLException();
}
+ OSQLParseNode * pAscendingDescending = pOrderingSpec->getChild(1);
+ setOrderbyColumn(pColumnRef,pAscendingDescending);
}
}
diff --git a/connectivity/source/drivers/firebird/Blob.cxx b/connectivity/source/drivers/firebird/Blob.cxx
index 3468a50ce3f4..8ed9fc4a8ac7 100644
--- a/connectivity/source/drivers/firebird/Blob.cxx
+++ b/connectivity/source/drivers/firebird/Blob.cxx
@@ -153,21 +153,21 @@ void Blob::closeBlob()
{
MutexGuard aGuard(m_aMutex);
- if (m_bBlobOpened)
- {
- ISC_STATUS aErr;
- aErr = isc_close_blob(m_statusVector,
- &m_blobHandle);
- if (aErr)
- evaluateStatusVector(m_statusVector, "isc_close_blob", *this);
+ if (!m_bBlobOpened)
+ return;
- m_bBlobOpened = false;
+ ISC_STATUS aErr;
+ aErr = isc_close_blob(m_statusVector,
+ &m_blobHandle);
+ if (aErr)
+ evaluateStatusVector(m_statusVector, "isc_close_blob", *this);
+
+ m_bBlobOpened = false;
#if SAL_TYPES_SIZEOFPOINTER == 8
- m_blobHandle = 0;
+ m_blobHandle = 0;
#else
- m_blobHandle = nullptr;
+ m_blobHandle = nullptr;
#endif
- }
}
void SAL_CALL Blob::disposing()
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 58aad4e1939e..b5a3c4ce748a 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -791,49 +791,48 @@ void SAL_CALL Connection::documentEventOccured( const DocumentEvent& Event )
if (!m_bIsEmbedded)
return;
- if (Event.EventName == "OnSave" || Event.EventName == "OnSaveAs")
- {
- commit(); // Commit and close transaction
- if ( m_bIsEmbedded && m_xEmbeddedStorage.is() )
- {
- SAL_INFO("connectivity.firebird", "Writing .fbk from running db");
- try
- {
- runBackupService(isc_action_svc_backup);
- }
- catch (const SQLException& e)
- {
- auto a = cppu::getCaughtException();
- throw WrappedTargetRuntimeException(e.Message, e.Context, a);
- }
+ if (!(Event.EventName == "OnSave" || Event.EventName == "OnSaveAs"))
+ return;
+ commit(); // Commit and close transaction
+ if ( !(m_bIsEmbedded && m_xEmbeddedStorage.is()) )
+ return;
+
+ SAL_INFO("connectivity.firebird", "Writing .fbk from running db");
+ try
+ {
+ runBackupService(isc_action_svc_backup);
+ }
+ catch (const SQLException& e)
+ {
+ auto a = cppu::getCaughtException();
+ throw WrappedTargetRuntimeException(e.Message, e.Context, a);
+ }
- Reference< XStream > xDBStream(m_xEmbeddedStorage->openStreamElement(our_sFBKLocation,
- ElementModes::WRITE));
- // TODO: verify the backup actually exists -- the backup service
- // can fail without giving any sane error messages / telling us
- // that it failed.
- using namespace ::comphelper;
- Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
- Reference< XInputStream > xInputStream;
- if (xContext.is())
- {
- xInputStream =
- OStorageHelper::GetInputStreamFromURL(m_sFBKPath, xContext);
- if (xInputStream.is())
- OStorageHelper::CopyInputToOutput( xInputStream,
- xDBStream->getOutputStream());
+ Reference< XStream > xDBStream(m_xEmbeddedStorage->openStreamElement(our_sFBKLocation,
+ ElementModes::WRITE));
- // remove old fdb file if exists
- uno::Reference< ucb::XSimpleFileAccess > xFileAccess =
- ucb::SimpleFileAccess::create(xContext);
- if (xFileAccess->exists(m_sFirebirdURL))
- xFileAccess->kill(m_sFirebirdURL);
- }
- }
+ // TODO: verify the backup actually exists -- the backup service
+ // can fail without giving any sane error messages / telling us
+ // that it failed.
+ using namespace ::comphelper;
+ Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
+ Reference< XInputStream > xInputStream;
+ if (!xContext.is())
+ return;
- }
+ xInputStream =
+ OStorageHelper::GetInputStreamFromURL(m_sFBKPath, xContext);
+ if (xInputStream.is())
+ OStorageHelper::CopyInputToOutput( xInputStream,
+ xDBStream->getOutputStream());
+
+ // remove old fdb file if exists
+ uno::Reference< ucb::XSimpleFileAccess > xFileAccess =
+ ucb::SimpleFileAccess::create(xContext);
+ if (xFileAccess->exists(m_sFirebirdURL))
+ xFileAccess->kill(m_sFirebirdURL);
}
// XEventListener
void SAL_CALL Connection::disposing(const EventObject& /*rSource*/)
diff --git a/connectivity/source/drivers/firebird/Keys.cxx b/connectivity/source/drivers/firebird/Keys.cxx
index 90f3966efad7..dd4cca47fb20 100644
--- a/connectivity/source/drivers/firebird/Keys.cxx
+++ b/connectivity/source/drivers/firebird/Keys.cxx
@@ -34,20 +34,20 @@ Keys::Keys(Table* pTable, Mutex& rMutex, const ::std::vector< OUString>& rNames)
//----- XDrop ----------------------------------------------------------------
void Keys::dropObject(sal_Int32 nPosition, const OUString& sName)
{
- if (!m_pTable->isNew())
- {
- uno::Reference<XPropertySet> xKey(getObject(nPosition), UNO_QUERY);
+ if (m_pTable->isNew())
+ return;
+
+ uno::Reference<XPropertySet> xKey(getObject(nPosition), UNO_QUERY);
- if (xKey.is())
- {
- const OUString sQuote = m_pTable->getConnection()->getMetaData()
- ->getIdentifierQuoteString();
+ if (xKey.is())
+ {
+ const OUString sQuote = m_pTable->getConnection()->getMetaData()
+ ->getIdentifierQuoteString();
- OUString sSql("ALTER TABLE " + quoteName(sQuote, m_pTable->getName())
- + " DROP CONSTRAINT " + quoteName(sQuote, sName));
+ OUString sSql("ALTER TABLE " + quoteName(sQuote, m_pTable->getName())
+ + " DROP CONSTRAINT " + quoteName(sQuote, sName));
- m_pTable->getConnection()->createStatement()->execute(sSql);
- }
+ m_pTable->getConnection()->createStatement()->execute(sSql);
}
}
diff --git a/connectivity/source/drivers/firebird/Table.cxx b/connectivity/source/drivers/firebird/Table.cxx
index 0220a8458264..e0eba9d7e264 100644
--- a/connectivity/source/drivers/firebird/Table.cxx
+++ b/connectivity/source/drivers/firebird/Table.cxx
@@ -70,24 +70,24 @@ Table::Table(Tables* pTables,
void Table::construct()
{
OTableHelper::construct();
- if (!isNew())
- {
- // TODO: get privileges when in non-embedded mode.
- m_nPrivileges = Privilege::DROP |
- Privilege::REFERENCE |
- Privilege::ALTER |
- Privilege::CREATE |
- Privilege::READ |
- Privilege::DELETE |
- Privilege::UPDATE |
- Privilege::INSERT |
- Privilege::SELECT;
- registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRIVILEGES),
- PROPERTY_ID_PRIVILEGES,
- PropertyAttribute::READONLY,
- &m_nPrivileges,
- cppu::UnoType<decltype(m_nPrivileges)>::get());
- }
+ if (isNew())
+ return;
+
+ // TODO: get privileges when in non-embedded mode.
+ m_nPrivileges = Privilege::DROP |
+ Privilege::REFERENCE |
+ Privilege::ALTER |
+ Privilege::CREATE |
+ Privilege::READ |
+ Privilege::DELETE |
+ Privilege::UPDATE |
+ Privilege::INSERT |
+ Privilege::SELECT;
+ registerProperty(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRIVILEGES),
+ PROPERTY_ID_PRIVILEGES,
+ PropertyAttribute::READONLY,
+ &m_nPrivileges,
+ cppu::UnoType<decltype(m_nPrivileges)>::get());
}
//----- OTableHelper ---------------------------------------------------------
OCollection* Table::createColumns(const ::std::vector< OUString>& rNames)
diff --git a/connectivity/source/drivers/firebird/Tables.cxx b/connectivity/source/drivers/firebird/Tables.cxx
index 7be79b5a2d4a..34907418abf8 100644
--- a/connectivity/source/drivers/firebird/Tables.cxx
+++ b/connectivity/source/drivers/firebird/Tables.cxx
@@ -207,19 +207,19 @@ void Tables::dropObject(sal_Int32 nPosition, const OUString& sName)
{
uno::Reference< XPropertySet > xTable(getObject(nPosition));
- if (!ODescriptor::isNew(xTable))
- {
- OUStringBuffer sSql("DROP ");
+ if (ODescriptor::isNew(xTable))
+ return;
- OUString sType;
- xTable->getPropertyValue("Type") >>= sType;
- sSql.append(sType);
+ OUStringBuffer sSql("DROP ");
- const OUString sQuoteString = m_xMetaData->getIdentifierQuoteString();
- sSql.append(::dbtools::quoteName(sQuoteString,sName));
+ OUString sType;
+ xTable->getPropertyValue("Type") >>= sType;
+ sSql.append(sType);
- m_xMetaData->getConnection()->createStatement()->execute(sSql.makeStringAndClear());
- }
+ const OUString sQuoteString = m_xMetaData->getIdentifierQuoteString();
+ sSql.append(::dbtools::quoteName(sQuoteString,sName));
+
+ m_xMetaData->getConnection()->createStatement()->execute(sSql.makeStringAndClear());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx
index 670fe46dffb0..43bc75225b1d 100644
--- a/connectivity/source/drivers/flat/ETable.cxx
+++ b/connectivity/source/drivers/flat/ETable.cxx
@@ -430,19 +430,19 @@ void OFlatTable::construct()
if(!m_pFileStream)
m_pFileStream = createStream_simpleError( aFileName, StreamMode::READ | StreamMode::NOCREATE | StreamMode::SHARE_DENYNONE);
- if(m_pFileStream)
- {
- sal_uInt64 const nSize = m_pFileStream->remainingSize();
+ if(!m_pFileStream)
+ return;
- // Buffersize is dependent on the file-size
- m_pFileStream->SetBufferSize(nSize > 1000000 ? 32768 :
- nSize > 100000 ? 16384 :
- nSize > 10000 ? 4096 : 1024);
+ sal_uInt64 const nSize = m_pFileStream->remainingSize();
- fillColumns(aAppLocale);
+ // Buffersize is dependent on the file-size
+ m_pFileStream->SetBufferSize(nSize > 1000000 ? 32768 :
+ nSize > 100000 ? 16384 :
+ nSize > 10000 ? 4096 : 1024);
- refreshColumns();
- }
+ fillColumns(aAppLocale);
+
+ refreshColumns();
}
OUString OFlatTable::getEntry() const
diff --git a/connectivity/source/drivers/hsqldb/HDriver.cxx b/connectivity/source/drivers/hsqldb/HDriver.cxx
index 7e006ecb61a2..05b9478a9f12 100644
--- a/connectivity/source/drivers/hsqldb/HDriver.cxx
+++ b/connectivity/source/drivers/hsqldb/HDriver.cxx
@@ -611,41 +611,41 @@ namespace connectivity
Reference< XStorage> xStorage(aEvent.Source,UNO_QUERY);
OUString sKey = StorageContainer::getRegisteredKey(xStorage);
- if ( !sKey.isEmpty() )
- {
- TWeakPairVector::const_iterator i = std::find_if(m_aConnections.begin(), m_aConnections.end(),
- [&sKey] (const TWeakPairVector::value_type& conn) {
- return conn.second.first == sKey;
- });
+ if ( sKey.isEmpty() )
+ return;
+
+ TWeakPairVector::const_iterator i = std::find_if(m_aConnections.begin(), m_aConnections.end(),
+ [&sKey] (const TWeakPairVector::value_type& conn) {
+ return conn.second.first == sKey;
+ });
+
+ OSL_ENSURE( i != m_aConnections.end(), "ODriverDelegator::preCommit: they're committing a storage which I do not know!" );
+ if ( i == m_aConnections.end() )
+ return;
- OSL_ENSURE( i != m_aConnections.end(), "ODriverDelegator::preCommit: they're committing a storage which I do not know!" );
- if ( i != m_aConnections.end() )
+ try
+ {
+ Reference<XConnection> xConnection(i->first,UNO_QUERY);
+ if ( xConnection.is() )
{
- try
- {
- Reference<XConnection> xConnection(i->first,UNO_QUERY);
- if ( xConnection.is() )
- {
- Reference< XStatement> xStmt = xConnection->createStatement();
- OSL_ENSURE( xStmt.is(), "ODriverDelegator::preCommit: no statement!" );
- if ( xStmt.is() )
- xStmt->execute( "SET WRITE_DELAY 0" );
-
- bool bPreviousAutoCommit = xConnection->getAutoCommit();
- xConnection->setAutoCommit( false );
- xConnection->commit();
- xConnection->setAutoCommit( bPreviousAutoCommit );
-
- if ( xStmt.is() )
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list