User: vg Date: 05/02/16 07:58:22 Modified: /dba/dbaccess/source/core/dataaccess/ databasecontext.cxx
Log: INTEGRATION: CWS hsqldb2 (1.25.22); FILE MERGED 2005/01/28 12:19:38 oj 1.25.22.2: #i39922# fix for storeAsURL and merges from dba23 2005/01/19 07:06:47 oj 1.25.22.1: #i39922# merge from dba22 and fixes in datasource for embedded storage File Changes: Directory: /dba/dbaccess/source/core/dataaccess/ ================================================ File [changed]: databasecontext.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/databasecontext.cxx?r1=1.27&r2=1.28 Delta lines: +61 -32 --------------------- --- databasecontext.cxx 2 Feb 2005 13:59:09 -0000 1.27 +++ databasecontext.cxx 16 Feb 2005 15:58:18 -0000 1.28 @@ -150,6 +150,9 @@ #ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX #include <svtools/pathoptions.hxx> #endif +#ifndef SVTOOLS_FILENOTATION_HXX +#include <svtools/filenotation.hxx> +#endif using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::sdb; @@ -168,6 +171,8 @@ using ::com::sun::star::task::InteractionClassification_ERROR; using ::com::sun::star::ucb::IOErrorCode_NO_FILE; using ::com::sun::star::ucb::InteractiveIOException; +using ::com::sun::star::ucb::IOErrorCode_NOT_EXISTING; +using ::com::sun::star::ucb::IOErrorCode_NOT_EXISTING_PATH; //========================================================================== @@ -377,14 +382,37 @@ } catch(InteractiveIOException e) { - throw WrappedTargetException( _sURL, Reference<XNamingService>(this), makeAny( e ) ); + if ( ( e.Code == IOErrorCode_NO_FILE ) + || ( e.Code == IOErrorCode_NOT_EXISTING ) + || ( e.Code == IOErrorCode_NOT_EXISTING_PATH ) + ) + { + // #i40463# #i39187# + String sErrorMessage( DBACORE_RESSTRING( RID_STR_FILE_DOES_NOT_EXIST ) ); + ::svt::OFileNotation aTransformer( _sURL ); + sErrorMessage.SearchAndReplaceAscii( "$file$", aTransformer.get( ::svt::OFileNotation::N_SYSTEM ) ); + + SQLException aError; + aError.Message = sErrorMessage; + + throw WrappedTargetException( _sURL, Reference< XNamingService >( this ), makeAny( aError ) ); + } + throw WrappedTargetException( _sURL, Reference< XNamingService >( this ), makeAny( e ) ); } catch(Exception e) { throw WrappedTargetException( _sURL, Reference<XNamingService>(this), makeAny( e ) ); } - Reference< XInterface > xExistent = *(new ODatabaseSource(*this, _rName, m_xServiceManager,this)); + Reference< XInterface > xExistent = getObject(_sURL); + if ( xExistent.is() ) // we found a object registered under the URL + { + m_aDatabaseObjects.erase(_sURL); + registerPrivate(_rName,xExistent); + } + else + { + xExistent = *(new ODatabaseSource(*this, _rName, m_xServiceManager,this)); Sequence< PropertyValue > aArgs(1); aArgs[0].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FileName")); @@ -417,6 +445,7 @@ else DBG_ERROR("ODatabaseContext::getRegisteredObject: missing an interface!"); } + } return xExistent; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
