summaryrefslogtreecommitdiffstats
path: root/dbaccess/source/ui/misc/WCPage.cxx
diff options
context:
space:
mode:
authorOcke Janssen <oj@openoffice.org>2001-12-07 12:12:29 +0000
committerOcke Janssen <oj@openoffice.org>2001-12-07 12:12:29 +0000
commit98eb0144cd2e5c06fd979e12936483bdb96085aa (patch)
tree63a12a2b27577c0d7345b5b998677fee1f78acc2 /dbaccess/source/ui/misc/WCPage.cxx
parent#95647# set default value to false (diff)
downloadcore-98eb0144cd2e5c06fd979e12936483bdb96085aa.tar.gz
core-98eb0144cd2e5c06fd979e12936483bdb96085aa.zip
#95728# check if append only was selected and set columns
Diffstat (limited to 'dbaccess/source/ui/misc/WCPage.cxx')
-rw-r--r--dbaccess/source/ui/misc/WCPage.cxx82
1 files changed, 40 insertions, 42 deletions
diff --git a/dbaccess/source/ui/misc/WCPage.cxx b/dbaccess/source/ui/misc/WCPage.cxx
index f49921b598bf..8550712a50a5 100644
--- a/dbaccess/source/ui/misc/WCPage.cxx
+++ b/dbaccess/source/ui/misc/WCPage.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: WCPage.cxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: oj $ $Date: 2001-11-06 12:50:08 $
+ * last change: $Author: oj $ $Date: 2001-12-07 13:12:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -288,26 +288,8 @@ sal_Bool OCopyTable::LeavePage()
{ // table exists and name has changed
if(m_pParent->getCreateStyle() == OCopyTableWizard::WIZARD_APPEND_DATA)
{
- m_pParent->clearDestColumns();
- // m_pParent->m_xSourceObject = NULL;
- m_pParent->m_xDestObject = NULL;
- Reference<XTablesSupplier > xSup(m_pParent->m_xConnection,UNO_QUERY);
- Reference<XNameAccess> xTables;
- if(xSup.is())
- xTables = xSup->getTables();
- if(xTables.is() && xTables->hasByName(m_edTableName.GetText()))
- {
- // set new destination
- xTables->getByName(m_edTableName.GetText()) >>= m_pParent->m_xDestObject;
- m_pParent->loadData(m_pParent->m_xDestObject,m_pParent->m_vDestColumns,m_pParent->m_aDestVec);
- // #90027#
- // m_pParent->CheckColumns();
- }
- if(!m_pParent->m_xDestObject.is())
- {
- ErrorBox(this, ModuleRes(ERROR_INVALID_TABLE_NAME)).Execute();
+ if(!checkAppendData())
return sal_False;
- }
}
else if(m_eOldStyle == OCopyTableWizard::WIZARD_APPEND_DATA)
{
@@ -322,28 +304,8 @@ sal_Bool OCopyTable::LeavePage()
{
case OCopyTableWizard::WIZARD_APPEND_DATA:
{
- m_pParent->clearDestColumns();
- // m_pParent->m_xSourceObject = NULL;
- m_pParent->m_xDestObject = NULL;
- Reference<XTablesSupplier > xSup(m_pParent->m_xConnection,UNO_QUERY);
- Reference<XNameAccess> xTables;
- if(xSup.is())
- xTables = xSup->getTables();
- if(xTables.is() && xTables->hasByName(m_edTableName.GetText()))
- {
- xTables->getByName(m_edTableName.GetText()) >>= m_pParent->m_xDestObject;
- m_pParent->loadData(m_pParent->m_xDestObject,m_pParent->m_vDestColumns,m_pParent->m_aDestVec);
- // m_pParent->loadData();
- // #90027#
- // m_pParent->CheckColumns();
- }
-
- if(!m_pParent->m_xDestObject.is())
- {
- ErrorBox(this, ModuleRes(ERROR_INVALID_TABLE_NAME)).Execute();
- m_edTableName.GrabFocus();
+ if(!checkAppendData())
return sal_False;
- }
break;
}
case OCopyTableWizard::WIZARD_DEF_DATA:
@@ -402,3 +364,39 @@ void OCopyTable::Reset()
m_edTableName.SaveValue();
}
//------------------------------------------------------------------------
+sal_Bool OCopyTable::checkAppendData()
+{
+ m_pParent->clearDestColumns();
+ m_pParent->m_xDestObject = NULL;
+ Reference<XTablesSupplier > xSup(m_pParent->m_xConnection,UNO_QUERY);
+ Reference<XNameAccess> xTables;
+ if(xSup.is())
+ xTables = xSup->getTables();
+ if(xTables.is() && xTables->hasByName(m_edTableName.GetText()))
+ {
+ // set new destination
+ xTables->getByName(m_edTableName.GetText()) >>= m_pParent->m_xDestObject;
+ m_pParent->loadData(m_pParent->m_xDestObject,m_pParent->m_vDestColumns,m_pParent->m_aDestVec);
+ // #90027#
+ const ODatabaseExport::TColumnVector* pDestColumns = m_pParent->getDestVector();
+ ODatabaseExport::TColumnVector::const_iterator aDestIter = pDestColumns->begin();
+ m_pParent->m_vColumnPos.reserve(pDestColumns->size()+1);
+ m_pParent->m_vColumnTypes.reserve(pDestColumns->size()+1);
+ for(sal_Int32 nPos = 1;aDestIter != pDestColumns->end();++aDestIter,++nPos)
+ {
+ m_pParent->m_vColumnPos.push_back(nPos);
+ const OTypeInfo* pTypeInfo = m_pParent->convertType((*aDestIter)->second->getTypeInfo());
+ if(pTypeInfo)
+ m_pParent->m_vColumnTypes.push_back(pTypeInfo->nType);
+ else
+ m_pParent->m_vColumnTypes.push_back(DataType::VARCHAR);
+ }
+ }
+ if(!m_pParent->m_xDestObject.is())
+ {
+ ErrorBox(this, ModuleRes(ERROR_INVALID_TABLE_NAME)).Execute();
+ return sal_False;
+ }
+ return sal_True;
+}
+// -----------------------------------------------------------------------------