Tag: cws_src680_dba26 User: fs Date: 05/03/14 06:17:33 Modified: /dba/dbaccess/source/filter/migration/ cfgimport.cxx
Log: RESYNC: (1.5-1.7); FILE MERGED File Changes: Directory: /dba/dbaccess/source/filter/migration/ ================================================= File [changed]: cfgimport.cxx Url: http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/migration/cfgimport.cxx?r1=1.5.14.1&r2=1.5.14.2 Delta lines: +84 -67 --------------------- --- cfgimport.cxx 8 Mar 2005 10:25:42 -0000 1.5.14.1 +++ cfgimport.cxx 14 Mar 2005 14:17:30 -0000 1.5.14.2 @@ -97,6 +97,12 @@ #ifndef _COM_SUN_STAR_SDBC_XDATASOURCE_HPP_ #include <com/sun/star/sdbc/XDataSource.hpp> #endif +#ifndef _COM_SUN_STAR_SDB_XOFFICEDATABASEDOCUMENT_HPP_ +#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp> +#endif +#ifndef _COM_SUN_STAR_SDB_XDOCUMENTDATASOURCE_HPP_ +#include <com/sun/star/sdb/XDocumentDataSource.hpp> +#endif #ifndef _URLOBJ_HXX //autogen wg. INetURLObject #include <tools/urlobj.hxx> #endif @@ -609,11 +615,16 @@ ::rtl::OUString sFileName; try { - m_xCurrentDS.set(m_xORB->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.OfficeDatabaseDocument"))),UNO_QUERY); - Reference< XModel > xModel(m_xCurrentDS,UNO_QUERY); - if ( !xModel.is() ) + m_xModel.set(m_xORB->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdb.OfficeDatabaseDocument"))),UNO_QUERY); + + if ( !m_xModel.is() ) return; + Reference<XOfficeDatabaseDocument> xOfficeDoc(m_xModel,UNO_QUERY); + if ( xOfficeDoc.is() ) + m_xCurrentDS.set(xOfficeDoc->getDataSource(),UNO_QUERY); + + INetURLObject aURL(rsWorkPath,INetURLObject::WAS_ENCODED); aURL.insertName(_sName,false,INetURLObject::LAST_SEGMENT,true,INetURLObject::ENCODE_ALL); aURL.setExtension(sExtension); @@ -629,8 +640,7 @@ aURL.setExtension(sExtension); sFileName = aURL.GetMainURL(INetURLObject::NO_DECODE); } - - xModel->attachResource(sFileName,Sequence<PropertyValue>()); + m_xModel->attachResource(sFileName,Sequence<PropertyValue>()); } catch(Exception&) { @@ -730,7 +740,12 @@ { Reference< XNameAccess > xDatabaseContext(m_xORB->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY); if ( xDatabaseContext.is() && xDatabaseContext->hasByName(m_sCurrentDataSourceName) ) + { m_xCurrentDS.set(xDatabaseContext->getByName(m_sCurrentDataSourceName),UNO_QUERY); + Reference<XDocumentDataSource> xDocumentDataSource(m_xCurrentDS,UNO_QUERY); + if ( xDocumentDataSource.is() ) + m_xModel.set(xDocumentDataSource->getDatabaseDocument(),UNO_QUERY); + } } if ( !m_xCurrentDS.is() ) createDataSource(m_sCurrentDataSourceName); @@ -820,7 +835,7 @@ case DATASOURCE: { setProperties(m_aStack.top().second); - Reference<XStorable> xStr(m_xCurrentDS,UNO_QUERY); + Reference<XStorable> xStr(m_xModel,UNO_QUERY); if ( xStr.is() ) { xStr->store(); @@ -844,7 +859,8 @@ Reference< XNamingService>(xDatabaseContext,UNO_QUERY)->registerObject(sName,m_xCurrentDS); } } - ::comphelper::disposeComponent(m_xCurrentDS); + ::comphelper::disposeComponent(m_xModel); + m_xCurrentDS = NULL; } break; case DATASOURCESETTINGS: @@ -861,6 +877,7 @@ Reference<XNameContainer> xTables(xSupplier->getTables(),UNO_QUERY); ::rtl::OUString sName; m_xCurrentObject->getPropertyValue(PROPERTY_NAME) >>= sName; + if ( !xTables->hasByName(sName) ) xTables->insertByName(sName,makeAny(m_xCurrentObject)); m_xCurrentObject = NULL; } @@ -885,13 +902,13 @@ Reference<XNameAccess> xNames; if ( bForm ) { - Reference<XFormDocumentsSupplier> xSup(m_xCurrentDS,UNO_QUERY); + Reference<XFormDocumentsSupplier> xSup(m_xModel,UNO_QUERY); if ( xSup.is() ) xNames = xSup->getFormDocuments(); } else { - Reference<XReportDocumentsSupplier> xSup(m_xCurrentDS,UNO_QUERY); + Reference<XReportDocumentsSupplier> xSup(m_xModel,UNO_QUERY); if ( xSup.is() ) xNames = xSup->getReportDocuments(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
