User: vg      
Date: 05/03/10 08:38:33

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

Log:
 INTEGRATION: CWS dba24 (1.4.28); FILE MERGED
 2005/02/21 13:10:12 oj 1.4.28.2: RESYNC: (1.4-1.5); FILE MERGED
 2005/02/18 13:11:50 oj 1.4.28.1: #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.5&r2=1.6
Delta lines:  +25 -8
--------------------
--- cfgimport.cxx       17 Feb 2005 11:05:12 -0000      1.5
+++ cfgimport.cxx       10 Mar 2005 16:38:30 -0000      1.6
@@ -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);
@@ -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();
                                        }




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

Reply via email to