diff options
author | Release Engineers <releng@openoffice.org> | 2008-12-01 12:31:27 +0000 |
---|---|---|
committer | Release Engineers <releng@openoffice.org> | 2008-12-01 12:31:27 +0000 |
commit | 2363c961947028ee152cbdfca7e4b4d1099ca019 (patch) | |
tree | d4e60312f0d4cca1098aa9ea181329711867e53e /dbaccess/source/ui/misc/datasourceconnector.cxx | |
parent | f2c90bcc552da21d692df2abeaf3997f8a7eda78 (diff) |
CWS-TOOLING: integrate CWS dba31e
2008-11-19 12:36:23 +0100 msc r263980 : i96104
2008-11-19 12:31:19 +0100 msc r263979 : i96104
2008-11-19 12:21:55 +0100 msc r263977 : i96104
2008-11-19 12:18:53 +0100 msc r263976 : i96104
2008-11-18 09:09:45 +0100 oj r263746 : disable color entry when area is set
2008-11-18 08:37:52 +0100 oj r263741 : #remove sub report entry
2008-11-17 11:20:25 +0100 fs r263708 : #i10000#
2008-11-17 11:06:52 +0100 fs r263706 : minimal version now is 3.1
2008-11-12 22:25:59 +0100 fs r263621 : #i96150#
2008-11-12 22:20:02 +0100 fs r263620 : rebased to m34
2008-11-12 21:39:41 +0100 fs r263618 : MANUAL REBASE: rebase CWS dba31d to DEV300_m34
2008-11-12 13:54:58 +0100 fs r263597 : #i96134# MediaDescriptor.URL is to be preferred over MediaDescriptor.FileName. Nonetheless, ensure both are handled
2008-11-12 13:53:40 +0100 fs r263596 : #i96134# re-enabled the code for #i41897#, a better fix is to come
2008-11-12 12:48:21 +0100 fs r263585 : #i96134# disable saving URLs of file-base databases relatively
2008-11-11 16:11:11 +0100 msc r263566 : #i96104#
2008-11-05 09:09:47 +0100 oj r263342 : #i88727# color noe added
2008-11-05 08:41:43 +0100 oj r263341 : #i77916# zoom added
2008-11-04 21:24:15 +0100 fs r263339 : disposing: call disposeAndClear without own mutex locked - some of our listeners insist on locking the SolarMutex, which sometimes led to deadlocks on the complex test cases
2008-11-04 21:23:15 +0100 fs r263338 : remove SolarMutex locking - this happned in CWS dba31c (in the CVS version), which this CWS was created from, but seems to got lost during resync
2008-11-04 20:49:50 +0100 fs r263335 : docu formatting
2008-11-04 20:06:39 +0100 fs r263334 : #i95826# use m_aMutex, not a DocumentGuard (wrongly resolved merge conflicts)
2008-11-04 17:36:29 +0100 fs r263332 : #i92688# properly revoke as XEventListener from m_xActiveController when disposing
2008-11-04 14:49:34 +0100 fs r263324 : #i92322# enable Input Required if EmptyIsNULL does not exist at the control
2008-10-31 11:10:04 +0100 oj r262857 : merge from cvs to svn
2008-10-31 09:46:45 +0100 oj r262853 : merge from cvs to svn
2008-10-31 08:46:37 +0100 oj r262849 : merge from cvs to svn
2008-10-31 08:44:24 +0100 oj r262848 : merge from cvs to svn
2008-10-31 08:43:33 +0100 oj r262847 : merge from cvs to svn
2008-10-31 08:42:28 +0100 oj r262846 : merge from cvs to svn
2008-10-31 08:41:58 +0100 oj r262845 : merge from cvs to svn
2008-10-31 08:41:32 +0100 oj r262844 : merge from cvs to svn
2008-10-28 12:19:50 +0100 oj r262733 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:42 +0100 oj r262732 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:36 +0100 oj r262731 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:31 +0100 oj r262730 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:22 +0100 oj r262729 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:18 +0100 oj r262728 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:10 +0100 oj r262727 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:06 +0100 oj r262726 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:05 +0100 oj r262725 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:19:01 +0100 oj r262724 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:50 +0100 oj r262723 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:41 +0100 oj r262722 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:40 +0100 oj r262721 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:27 +0100 oj r262720 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:10 +0100 oj r262719 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:18:01 +0100 oj r262718 : #iXXXXX#: migrate CWS dba31e to SVN
2008-10-28 12:17:39 +0100 oj r262717 : #iXXXXX#: migrate CWS dba31e to SVN
Diffstat (limited to 'dbaccess/source/ui/misc/datasourceconnector.cxx')
-rw-r--r-- | dbaccess/source/ui/misc/datasourceconnector.cxx | 94 |
1 files changed, 51 insertions, 43 deletions
diff --git a/dbaccess/source/ui/misc/datasourceconnector.cxx b/dbaccess/source/ui/misc/datasourceconnector.cxx index 40c073b521ac..470ab5f08ba3 100644 --- a/dbaccess/source/ui/misc/datasourceconnector.cxx +++ b/dbaccess/source/ui/misc/datasourceconnector.cxx @@ -91,6 +91,9 @@ #ifndef TOOLS_DIAGNOSE_EX_H #include <tools/diagnose_ex.h> #endif +#ifndef _CPPUHELPER_EXC_HLP_HXX_ +#include <cppuhelper/exc_hlp.hxx> +#endif #ifndef _DBU_MISC_HRC_ #include "dbu_misc.hrc" #endif @@ -132,7 +135,8 @@ namespace dbaui } //--------------------------------------------------------------------- - Reference< XConnection > ODatasourceConnector::connect(const ::rtl::OUString& _rDataSourceName, sal_Bool _bShowError) const + Reference< XConnection > ODatasourceConnector::connect( const ::rtl::OUString& _rDataSourceName, + ::dbtools::SQLExceptionInfo* _pErrorInfo ) const { Reference< XConnection > xConnection; @@ -142,28 +146,24 @@ namespace dbaui // get the data source Reference< XDataSource > xDatasource( - getDataSourceByName_displayError( _rDataSourceName, m_pErrorMessageParent, m_xORB, _bShowError ), + getDataSourceByName( _rDataSourceName, m_pErrorMessageParent, m_xORB, _pErrorInfo ), UNO_QUERY ); + if ( xDatasource.is() ) - xConnection = connect( xDatasource, _bShowError ); + xConnection = connect( xDatasource, _pErrorInfo ); return xConnection; } //--------------------------------------------------------------------- - Reference< XConnection > ODatasourceConnector::connect(const Reference< XDataSource>& _xDataSource, sal_Bool _bShowError) const + Reference< XConnection > ODatasourceConnector::connect(const Reference< XDataSource>& _xDataSource, + ::dbtools::SQLExceptionInfo* _pErrorInfo ) const { Reference< XConnection > xConnection; - OSL_ENSURE(isValid(), "ODatasourceConnector::connect: invalid object!"); - if (!isValid()) - return xConnection; - - if (!_xDataSource.is()) - { - OSL_ENSURE(sal_False, "ODatasourceConnector::connect: could not retrieve the data source!"); + OSL_ENSURE( isValid() && _xDataSource.is(), "ODatasourceConnector::connect: invalid object or argument!" ); + if ( !isValid() || !_xDataSource.is() ) return xConnection; - } // get user/password ::rtl::OUString sPassword, sUser; @@ -177,7 +177,7 @@ namespace dbaui } catch(Exception&) { - OSL_ENSURE(sal_False, "ODatasourceConnector::connect: error while retrieving data source properties!"); + DBG_UNHANDLED_EXCEPTION(); } // try to connect @@ -210,19 +210,44 @@ namespace dbaui xConnection = _xDataSource->getConnection(sUser, sPassword); } } - catch(SQLContext& e) { aInfo = SQLExceptionInfo(e); } - catch(SQLWarning& e) { aInfo = SQLExceptionInfo(e); } - catch(SQLException& e) { aInfo = SQLExceptionInfo(e); } + catch( const SQLException& ) + { + aInfo = ::cppu::getCaughtException(); + } catch(const Exception&) { DBG_UNHANDLED_EXCEPTION(); } - if ( !_bShowError ) - return xConnection; + if ( !aInfo.isValid() ) + { + // there was no error during connecting, but perhaps a warning? + Reference< XWarningsSupplier > xConnectionWarnings( xConnection, UNO_QUERY ); + if ( xConnectionWarnings.is() ) + { + try + { + Any aWarnings( xConnectionWarnings->getWarnings() ); + if ( aWarnings.hasValue() ) + { + String sMessage( ModuleRes( STR_WARNINGS_DURING_CONNECT ) ); + sMessage.SearchAndReplaceAscii( "$buttontext$", Button::GetStandardText( BUTTON_MORE ) ); + sMessage = OutputDevice::GetNonMnemonicString( sMessage ); - // was there and error? - if ( aInfo.isValid() ) + SQLWarning aContext; + aContext.Message = sMessage; + aContext.NextException = aWarnings; + aInfo = aContext; + } + xConnectionWarnings->clearWarnings(); + } + catch( const Exception& ) + { + DBG_UNHANDLED_EXCEPTION(); + } + } + } + else { if ( m_sContextInformation.getLength() ) { @@ -232,37 +257,20 @@ namespace dbaui aInfo = aError; } - - showError(aInfo, m_pErrorMessageParent, m_xORB); - return xConnection; } - // was there a warning? - Reference< XWarningsSupplier > xConnectionWarnings( xConnection, UNO_QUERY ); - if ( xConnectionWarnings.is() ) + // was there an error? + if ( aInfo.isValid() ) { - try + if ( _pErrorInfo ) { - Any aWarnings( xConnectionWarnings->getWarnings() ); - if ( aWarnings.hasValue() ) - { - String sMessage( ModuleRes( STR_WARNINGS_DURING_CONNECT ) ); - sMessage.SearchAndReplaceAscii( "$buttontext$", Button::GetStandardText( BUTTON_MORE ) ); - sMessage = OutputDevice::GetNonMnemonicString( sMessage ); - - SQLContext aContext; - aContext.Message = sMessage; - aContext.NextException = aWarnings; - showError( SQLExceptionInfo( aContext ), m_pErrorMessageParent, m_xORB ); - } - xConnectionWarnings->clearWarnings(); + *_pErrorInfo = aInfo; } - catch( const Exception& ) + else { - DBG_UNHANDLED_EXCEPTION(); + showError( aInfo, m_pErrorMessageParent, m_xORB ); } } - return xConnection; } |