Tag: cws_src680_dba24
User: oj      
Date: 05/02/18 05:11:53

Modified:
 /dba/dbaccess/source/filter/migration/
  cfgimport.cxx, cfgimport.hxx

Log:
 #i42460# changes for the separation of datasource and database document(model)

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.4&r2=1.4.28.1
Delta lines:  +25 -8
--------------------
--- cfgimport.cxx       15 Nov 2004 15:17:53 -0000      1.4
+++ cfgimport.cxx       18 Feb 2005 13:11:50 -0000      1.4.28.1
@@ -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.DatabaseDocument"))),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.DatabaseDocument"))),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);
@@ -630,7 +641,7 @@
                        sFileName = aURL.GetMainURL(INetURLObject::NO_DECODE);
                }
                
-               xModel->attachResource(sFileName,Sequence<PropertyValue>());
+               m_xModel->attachResource(sFileName,Sequence<PropertyValue>());
        }
        catch(Exception&)
        {
@@ -730,7 +741,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 +836,7 @@
                        case DATASOURCE:
                                {
                                        setProperties();
-                                       Reference<XStorable> 
xStr(m_xCurrentDS,UNO_QUERY);
+                                       Reference<XStorable> 
xStr(m_xModel,UNO_QUERY);
                                        if ( xStr.is() )
                                        {
                                                xStr->store();
@@ -844,7 +860,8 @@
                                                        Reference< 
XNamingService>(xDatabaseContext,UNO_QUERY)->registerObject(sName,m_xCurrentDS);
                                                }
                                        }
-                                       
::comphelper::disposeComponent(m_xCurrentDS);
+                                       
::comphelper::disposeComponent(m_xModel);
+                    m_xCurrentDS = NULL;
                                }
                                break;
                        case DATASOURCESETTINGS:
@@ -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();
                                        }

File [changed]: cfgimport.hxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/filter/migration/cfgimport.hxx?r1=1.3&r2=1.3.28.1
Delta lines:  +5 -0
-------------------
--- cfgimport.hxx       15 Nov 2004 15:18:07 -0000      1.3
+++ cfgimport.hxx       18 Feb 2005 13:11:50 -0000      1.3.28.1
@@ -74,6 +74,9 @@
 #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #endif
+#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+#include <com/sun/star/frame/XModel.hpp>
+#endif
 #ifndef _COM_SUN_STAR_TASK_XJOB_HPP_
 #include <com/sun/star/task/XJob.hpp>
 #endif
@@ -104,6 +107,7 @@
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::frame;
 
 typedef ::cppu::WeakImplHelper4        <               
::com::sun::star::lang::XServiceInfo
                                                                        ,       
::com::sun::star::lang::XInitialization
@@ -124,6 +128,7 @@
        Reference< XMultiServiceFactory >                                       
                        m_xOldORB;
        Reference< ::com::sun::star::configuration::backend::XLayer>    
m_xLayer;
        Reference<XPropertySet>                                                 
                                m_xCurrentDS;
+    Reference<XModel>                                                          
                            m_xModel;
        Reference<XPropertySet>                                                 
                                m_xCurrentObject; /// can either be a query or 
a table
        Reference<XPropertySet>                                                 
                                m_xCurrentColumn;
        Sequence< ::rtl::OUString>                                              
                                m_aProperties;




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to