User: obo     
Date: 2006/07/10 08:36:24

Modified:
   dba/dbaccess/source/ui/misc/UITools.cxx

Log:
 INTEGRATION: CWS qiq (1.59.66); FILE MERGED
 2006/06/27 12:46:19 fs 1.59.66.5: RESYNC: (1.59-1.60); FILE MERGED
 2006/05/24 06:49:27 fs 1.59.66.4: some refactoring of compose/quoteTableName 
and friends, in preparation of #i51143#
 2006/05/17 11:46:31 fs 1.59.66.3: ::dbaui::insertHierarchyElement needs an ORB 
now
 2006/05/12 14:36:31 fs 1.59.66.2: #i51143# when creating a view from a query, 
substitute sub queries
 2006/05/10 11:02:13 fs 1.59.66.1: default APPEND_TABLE_ALIAS to false

File Changes:

Directory: /dba/dbaccess/source/ui/misc/
========================================

File [changed]: UITools.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/UITools.cxx?r1=1.60&r2=1.61
Delta lines:  +137 -100
-----------------------
--- UITools.cxx 20 Jun 2006 03:21:13 -0000      1.60
+++ UITools.cxx 10 Jul 2006 15:36:22 -0000      1.61
@@ -54,9 +54,15 @@
 #ifndef DBAUI_DBTREELISTBOX_HXX
 #include "dbtreelistbox.hxx"
 #endif
+#ifndef DBACCESS_SOURCE_UI_INC_DEFAULTOBJECTNAMECHECK_HXX
+#include "defaultobjectnamecheck.hxx"
+#endif
 #ifndef _COMPHELPER_EXTRACT_HXX_
 #include <comphelper/extract.hxx>
 #endif
+#ifndef _COM_SUN_STAR_SDB_XSINGLESELECTQUERYANALYZER_HPP_
+#include <com/sun/star/sdb/XSingleSelectQueryAnalyzer.hpp>
+#endif
 #ifndef _COM_SUN_STAR_SDB_XCOMPLETEDCONNECTION_HPP_
 #include <com/sun/star/sdb/XCompletedConnection.hpp>
 #endif
@@ -277,6 +283,9 @@
 #ifndef _URLOBJ_HXX
 #include <tools/urlobj.hxx>
 #endif
+#ifndef TOOLS_DIAGNOSE_EX_H
+#include <tools/diagnose_ex.h>
+#endif
 #ifndef _NUMUNO_HXX
 #include <svtools/numuno.hxx>
 #endif
@@ -924,7 +933,7 @@
                {
                        sSchema = _xMetaData->getUserName();
                }
-               
::dbtools::composeTableName(_xMetaData,sCatalog,sSchema,_sName,sCompsedName,sal_False,::dbtools::eInDataManipulation);
+               sCompsedName = ::dbtools::composeTableName( _xMetaData, 
sCatalog, sSchema, _sName, sal_False, ::dbtools::eInDataManipulation );
                sDefaultName = 
::dbtools::createUniqueName(_xTables,sCompsedName);
        }
        catch(const SQLException&)
@@ -1375,7 +1384,7 @@
 // 
-----------------------------------------------------------------------------
 sal_Bool isAppendTableAliasEnabled(const Reference<XConnection>& _xConnection)
 {
-       return 
::dbtools::isDataSourcePropertyEnabled(_xConnection,INFO_APPEND_TABLE_ALIAS,sal_True);
+       return 
::dbtools::isDataSourcePropertyEnabled(_xConnection,INFO_APPEND_TABLE_ALIAS,sal_False);
 }
 
 // 
-----------------------------------------------------------------------------
@@ -1671,6 +1680,28 @@
        }
        return aAsk.Execute();
 }
+
+// 
-----------------------------------------------------------------------------
+namespace
+{
+    static ::rtl::OUString lcl_createSDBCLevelStatement( const 
::rtl::OUString& _rStatement, const Reference< XConnection >& _rxConnection )
+    {
+        ::rtl::OUString sSDBCLevelStatement( _rStatement );
+        try
+        {
+            Reference< XMultiServiceFactory > xAnalyzerFactory( _rxConnection, 
UNO_QUERY_THROW );
+            Reference< XSingleSelectQueryAnalyzer > xAnalyzer( 
xAnalyzerFactory->createInstance( SERVICE_NAME_SINGLESELECTQUERYCOMPOSER ), 
UNO_QUERY_THROW );
+            xAnalyzer->setQuery( _rStatement );
+            sSDBCLevelStatement = xAnalyzer->getQueryWithSubstitution();
+        }
+        catch( const Exception& )
+        {
+            DBG_UNHANDLED_EXCEPTION();
+        }
+        return sSDBCLevelStatement;
+    }
+}
+
 // 
-----------------------------------------------------------------------------
 Reference<XPropertySet> createView( const ::rtl::OUString& _sName
                                                                   ,const 
Reference< ::com::sun::star::sdbc::XConnection >& _xConnection
@@ -1705,13 +1736,16 @@
        
if(_xSourceObject->getPropertySetInfo()->hasPropertyByName(PROPERTY_COMMAND))
        {
                _xSourceObject->getPropertyValue(PROPERTY_COMMAND) >>= sCommand;
+
+        sal_Bool bEscapeProcessing( sal_False );
+        OSL_VERIFY( _xSourceObject->getPropertyValue( 
PROPERTY_USE_ESCAPE_PROCESSING ) >>= bEscapeProcessing );
+        if ( bEscapeProcessing )
+            sCommand = lcl_createSDBCLevelStatement( sCommand, _xConnection );
        }
        else
        {
                sCommand = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SELECT 
* FROM "));
-               sal_Bool bUseCatalogInSelect = 
::dbtools::isDataSourcePropertyEnabled(_xConnection,PROPERTY_USECATALOGINSELECT,sal_True);
-               sal_Bool bUseSchemaInSelect = 
::dbtools::isDataSourcePropertyEnabled(_xConnection,PROPERTY_USESCHEMAINSELECT,sal_True);
-               sCommand += 
::dbaui::composeTableName(_xConnection->getMetaData(),_xSourceObject,sal_True,::dbtools::eInDataManipulation,bUseCatalogInSelect,bUseSchemaInSelect);
+               sCommand += composeTableNameForSelect( _xConnection, 
_xSourceObject );
        }
        xView->setPropertyValue(PROPERTY_COMMAND,makeAny(sCommand));
 
@@ -1815,17 +1849,19 @@
        }
 }
 // 
-----------------------------------------------------------------------------
-sal_Bool insertHierachyElement(Window* _pParent
-                                                  ,const 
Reference<XHierarchicalNameContainer>& _xNames
-                                                  ,const String& _sParentFolder
-                                                  ,sal_Bool _bForm
-                                                  ,sal_Bool _bCollection
-                                                  ,const Reference<XContent>& 
_xContent
-                                                  ,sal_Bool _bMove)
+sal_Bool insertHierachyElement( Window* _pParent, const Reference< 
XMultiServiceFactory >& _rxORB, 
+                                                  const 
Reference<XHierarchicalNameContainer>& _xNames,
+                                                  const String& _sParentFolder,
+                                                  sal_Bool _bForm,
+                                                  sal_Bool _bCollection,
+                                                  const Reference<XContent>& 
_xContent,
+                                                  sal_Bool _bMove)
 {
-       if ( _xNames.is() )
-       {
-               Reference<XNameAccess> xNameAccess(_xNames,UNO_QUERY);
+    OSL_ENSURE( _xNames.is(), "insertHierachyElement: illegal name container!" 
);
+       if ( !_xNames.is() )
+        return sal_False;
+
+    Reference<XNameAccess> xNameAccess( _xNames, UNO_QUERY );
                ::rtl::OUString sName = _sParentFolder;
                if ( _xNames->hasByHierarchicalName(sName) )
                {
@@ -1835,8 +1871,10 @@
                                xNameAccess.set(xChild->getParent(),UNO_QUERY);
                }
 
-               if ( xNameAccess.is() )
-               {
+    OSL_ENSURE( xNameAccess.is(), "insertHierachyElement: could not find the 
proper name container!" );
+       if ( !xNameAccess.is() )
+        return sal_False;
+
                        ::rtl::OUString sNewName;
                        Reference<XPropertySet> xProp(_xContent,UNO_QUERY);
                        if ( xProp.is() )
@@ -1856,12 +1894,13 @@
 
 
                                        // here we have everything needed to 
create a new query object ...
+            HierarchicalNameCheck aNameChecker( _xNames.get(), sName );
                                        // ... ehm, except a new name
                                        OSaveAsDlg aAskForName( _pParent,
-                                                                               
        _xNames.get(),
+                                    _rxORB,
                                                                                
        sTargetName,
                                                                                
        sLabel,
-                                                                               
        sName,
+                                                                       
aNameChecker,
                                                                                
        SAD_ADDITIONAL_DESCRIPTION | SAD_TITLE_PASTE_AS);
                                        if ( RET_OK != aAskForName.Execute() )
                                                // cancelled by the user
@@ -1872,13 +1911,13 @@
                        }
                        else if ( xNameAccess->hasByName(sNewName) )
                        {
-                               String 
sError(ModuleRes(STR_OBJECT_ALREADY_EXISTS));
+               String sError(ModuleRes(STR_NAME_ALREADY_EXISTS));
                                sError.SearchAndReplaceAscii("#",sNewName);
                                throw 
SQLException(sError,NULL,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")) 
,0,Any());
                        }
 
-                       if ( sNewName.getLength() )
-                       {
+       if ( !sNewName.getLength() )
+        return sal_False;
                                try
                                {
                                        Reference<XMultiServiceFactory> 
xORB(xNameAccess,UNO_QUERY);
@@ -1911,12 +1950,10 @@
                                }
                                catch(Exception&)
                                {
-                                       
OSL_ENSURE(0,"OApplicationController::OApplicationController -> exception 
catched");
+        DBG_UNHANDLED_EXCEPTION();
                                        return sal_False;
                                }
-                       }
-               }
-       }
+
        return sal_True;
 }
 // 
-----------------------------------------------------------------------------




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

Reply via email to