Tag: cws_src680_dba203c
User: oj      
Date: 06/04/24 06:45:40

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

Log:
 RESYNC: (1.42-1.43); FILE MERGED

File Changes:

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

File [changed]: WCopyTable.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/WCopyTable.cxx?r1=1.42.48.1&r2=1.42.48.2
Delta lines:  +64 -5
--------------------
--- WCopyTable.cxx      13 Apr 2006 13:55:20 -0000      1.42.48.1
+++ WCopyTable.cxx      24 Apr 2006 13:45:38 -0000      1.42.48.2
@@ -102,6 +102,9 @@
 #ifndef DBAUI_TOOLS_HXX
 #include "UITools.hxx"
 #endif
+#ifndef DBAUI_WIZARD_CPAGE_HXX
+#include "WCPage.hxx"
+#endif
 #ifndef _SV_WAITOBJ_HXX
 #include <vcl/waitobj.hxx>
 #endif
@@ -179,11 +182,18 @@
                                m_sSourceName = 
::dbtools::composeTableName(m_xConnection->getMetaData(),m_xSourceObject,sal_False,::dbtools::eInDataManipulation);
                        else
                                _xSourceObject->getPropertyValue(PROPERTY_NAME) 
>>= m_sSourceName;
+            if ( m_xSourceConnection == m_xConnection )
+            {
+                Reference<XTablesSupplier> xSup(m_xConnection,UNO_QUERY_THROW);
+                m_sName = 
::dbtools::createUniqueName(xSup->getTables(),m_sSourceName,sal_False);
+            }
+            else
                        m_sName = m_sSourceName;
                }
        }
-       catch(Exception)
+       catch(const Exception&)
        {
+        m_sName = m_sSourceName;
        }
 }
 // 
-----------------------------------------------------------------------------
@@ -435,6 +445,50 @@
                                                return 0;
                                        }
                                }
+                if ( m_xConnection.is() )
+                   {
+                    sal_Bool bPKeyAllowed = sal_False;
+                    try
+                    {
+                               Reference< XDatabaseMetaData >  
xMetaData(m_xConnection->getMetaData());
+                               bPKeyAllowed = 
xMetaData->supportsCoreSQLGrammar();
+                    }
+                    catch(const Exception&)
+                    {
+                        OSL_ENSURE(0,"Exception caught while asking for 
supportsCoreSQLGrammar!");
+                    }
+                    if ( bPKeyAllowed )
+                    {
+                        ODatabaseExport::TColumns::iterator aFind = 
::std::find_if(m_vDestColumns.begin(),m_vDestColumns.end()
+                            
,::std::compose1(::std::mem_fun(&OFieldDescription::IsPrimaryKey),::std::select2nd<ODatabaseExport::TColumns::value_type>()));
+                        if ( aFind == m_vDestColumns.end() )
+                        {
+                            String 
sTitle(ModuleRes(STR_TABLEDESIGN_NO_PRIM_KEY_HEAD));
+                                       String 
sMsg(ModuleRes(STR_TABLEDESIGN_NO_PRIM_KEY));
+                                       OSQLMessageBox aBox(this, sTitle,sMsg, 
WB_YES_NO_CANCEL | WB_DEF_YES);
+
+                                       INT16 nReturn = aBox.Execute();
+
+                                       switch(nReturn )
+                            {
+                                case RET_YES:
+                                {
+                                    OCopyTable* pPage = 
reinterpret_cast<OCopyTable*>(GetPage(0));
+                                    m_bCreatePrimaryColumn = sal_True;
+                                    m_aKeyName = pPage->GetKeyName();
+                                    sal_Int32 nBreakPos = 0;
+                                                   CheckColumns(nBreakPos);
+                                    break;
+                                }
+                                case RET_CANCEL:
+                                    ShowPage(3);
+                                    return 0;
+                                default:
+                                    ;
+                            }
+                        }
+                    }
+                }
                                break;
                        }
                        case WIZARD_APPEND_DATA:
@@ -1008,6 +1062,11 @@
        OSL_ENSURE(m_mNameMapping.find(_sColumnName) == 
m_mNameMapping.end(),"name doubled!");
        m_mNameMapping[_sColumnName] = sAlias;
        return sAlias;
+}
+// 
-----------------------------------------------------------------------------
+void OCopyTableWizard::removeColumnNameFromNameMap(const ::rtl::OUString& 
_sName)
+{
+    m_mNameMapping.erase(_sName);
 }
 // 
-----------------------------------------------------------------------------
 sal_Bool OCopyTableWizard::supportsType(sal_Int32 _nDataType,sal_Int32& 
_rNewDataType)




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

Reply via email to