diff --git a/source/ui/dbui/dbmgr.cxx b/source/ui/dbui/dbmgr.cxx index f0f6090..34f84d7 100644 --- a/source/ui/dbui/dbmgr.cxx +++ b/source/ui/dbui/dbmgr.cxx @@ -1753,6 +1753,7 @@ ULONG SwNewDBMgr::GetColumnFmt( const String& rDBName, uno::Reference< XConnection> xConnection; sal_Bool bUseMergeData = sal_False; uno::Reference< XColumnsSupplier> xColsSupp; + bool bDisposeConnection = false; if(pImpl->pMergeData && pImpl->pMergeData->sDataSource.equals(rDBName) && pImpl->pMergeData->sCommand.equals(rTableName)) { @@ -1777,6 +1778,7 @@ ULONG SwNewDBMgr::GetColumnFmt( const String& rDBName, { rtl::OUString sDBName(rDBName); xConnection = RegisterConnection( sDBName ); + bDisposeConnection = true; } if(bUseMergeData) pImpl->pMergeData->xConnection = xConnection; @@ -1807,6 +1809,10 @@ ULONG SwNewDBMgr::GetColumnFmt( const String& rDBName, { ::comphelper::disposeComponent( xColsSupp ); } + if(bDisposeConnection) + { + ::comphelper::disposeComponent( xConnection ); + } } else nRet = pNFmtr->GetFormatIndex( NF_NUMBER_STANDARD, LANGUAGE_SYSTEM );