User: obo Date: 05/03/18 02:10:10 Modified: /dba/dbaccess/source/ui/dlg/ UserAdminDlg.cxx
Log: INTEGRATION: CWS dba25 (1.3.38); FILE MERGED 2005/03/04 12:00:10 oj 1.3.38.2: #i43912# check if users are not null 2005/03/04 07:19:44 oj 1.3.38.1: #i43912# use set connection as activeconnection File Changes: Directory: /dba/dbaccess/source/ui/dlg/ ======================================= File [changed]: UserAdminDlg.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/dlg/UserAdminDlg.cxx?r1=1.3&r2=1.4 Delta lines: +28 -16 --------------------- --- UserAdminDlg.cxx 21 Jan 2005 17:13:36 -0000 1.3 +++ UserAdminDlg.cxx 18 Mar 2005 10:10:07 -0000 1.4 @@ -132,9 +132,12 @@ OUserAdminDlg::OUserAdminDlg(Window* _pParent , SfxItemSet* _pItems ,const Reference< XMultiServiceFactory >& _rxORB - ,const ::com::sun::star::uno::Any& _aDataSourceName) + ,const ::com::sun::star::uno::Any& _aDataSourceName + ,const Reference< XConnection >& _xConnection) :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_USERADMIN), _pItems) ,m_pItemSet(_pItems) + ,m_xConnection(_xConnection) + ,m_bOwnConnection(!_xConnection.is()) { m_pImpl = ::std::auto_ptr<ODbDataSourceAdministrationHelper>(new ODbDataSourceAdministrationHelper(_rxORB,_pParent,this)); m_pImpl->setCurrentDataSourceName(_aDataSourceName); @@ -155,6 +158,7 @@ // ----------------------------------------------------------------------- OUserAdminDlg::~OUserAdminDlg() { + if ( m_bOwnConnection ) try { ::comphelper::disposeComponent(m_xConnection); @@ -169,20 +173,25 @@ { try { + Reference<XUsersSupplier> xUsersSup(m_xConnection,UNO_QUERY); + sal_Bool bError = sal_False; + if ( !xUsersSup.is() ) + { Reference< XDataDefinitionSupplier > xDriver(getDriver(),UNO_QUERY); - sal_Bool bError = !xDriver.is(); + bError = !xDriver.is(); if ( !bError ) { m_xConnection = createConnection().first; - if ( m_xConnection.is() ) + + if ( !(bError = !m_xConnection.is()) ) { // now set the tables supplier at the table control - Reference< XTablesSupplier > xTablesSup = xDriver->getDataDefinitionByConnection(m_xConnection); - - Reference<XUsersSupplier> xUsersSup(xTablesSup,UNO_QUERY); - bError = !xUsersSup.is(); + xUsersSup.set(xDriver->getDataDefinitionByConnection(m_xConnection),UNO_QUERY); + } } } + bError = ! ( xUsersSup.is() && xUsersSup->getUsers().is()); + if ( bError ) { String sError(ModuleRes(STR_USERADMIN_NOT_AVAILABLE)); @@ -227,7 +236,10 @@ ::std::pair< Reference<XConnection>,sal_Bool> OUserAdminDlg::createConnection() { if ( !m_xConnection.is() ) + { m_xConnection = m_pImpl->createConnection().first; + m_bOwnConnection = m_xConnection.is(); + } return ::std::pair< Reference<XConnection>,sal_Bool> (m_xConnection,sal_False); } // ----------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
