summaryrefslogtreecommitdiffstats
path: root/dbaccess/source/ui/browser/dsbrowserDnD.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2004-06-01 09:11:31 +0000
committerOliver Bolte <obo@openoffice.org>2004-06-01 09:11:31 +0000
commitff7d8997835bbde0db241f68c3e0bfc3f561f81d (patch)
tree5b38445ad2cb58879cf40987014d9d02b53e8cfb /dbaccess/source/ui/browser/dsbrowserDnD.cxx
parentINTEGRATION: CWS oj5 (1.75.52); FILE MERGED (diff)
downloadcore-ff7d8997835bbde0db241f68c3e0bfc3f561f81d.tar.gz
core-ff7d8997835bbde0db241f68c3e0bfc3f561f81d.zip
INTEGRATION: CWS oj5 (1.62.64); FILE MERGED
2004/05/25 11:18:59 oj 1.62.64.1: #i15547# fix column position
Diffstat (limited to 'dbaccess/source/ui/browser/dsbrowserDnD.cxx')
-rw-r--r--dbaccess/source/ui/browser/dsbrowserDnD.cxx30
1 files changed, 23 insertions, 7 deletions
diff --git a/dbaccess/source/ui/browser/dsbrowserDnD.cxx b/dbaccess/source/ui/browser/dsbrowserDnD.cxx
index 748c4dbf8aad..e09b1e077007 100644
--- a/dbaccess/source/ui/browser/dsbrowserDnD.cxx
+++ b/dbaccess/source/ui/browser/dsbrowserDnD.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dsbrowserDnD.cxx,v $
*
- * $Revision: 1.62 $
+ * $Revision: 1.63 $
*
- * last change: $Author: rt $ $Date: 2003-12-01 10:36:20 $
+ * last change: $Author: obo $ $Date: 2004-06-01 10:11:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -285,22 +285,38 @@ namespace dbaui
aColumnTypes.push_back(xMeta->getColumnType(k));
// create sql string and set column types
+ ::std::vector< ::rtl::OUString> aInsertList;
Reference<XNameAccess> xNameAccess = xColsSup->getColumns();
Sequence< ::rtl::OUString> aSeq = xNameAccess->getElementNames();
const ::rtl::OUString* pBegin = aSeq.getConstArray();
const ::rtl::OUString* pEnd = pBegin + aSeq.getLength();
- for(sal_Int32 i=1;pBegin != pEnd;++pBegin,++i)
+
+ aInsertList.resize(aSeq.getLength()+1);
+
+ sal_Int32 i = 0;
+ for(sal_Int32 j=0; j < aInsertList.size() ;++i,++j)
{
// create the sql string
- if ( _rvColumns.end() != ::std::find_if(_rvColumns.begin(),_rvColumns.end(),
- ::std::compose1(::std::bind2nd(::std::equal_to<sal_Int32>(),i),::std::select1st<ODatabaseExport::TPositions::value_type>())) )
+ ODatabaseExport::TPositions::const_iterator aFind = ::std::find_if(_rvColumns.begin(),_rvColumns.end(),
+ ::std::compose1(::std::bind2nd(::std::equal_to<sal_Int32>(),i+1),::std::select2nd<ODatabaseExport::TPositions::value_type>()));
+ if ( _rvColumns.end() != aFind && aFind->second != CONTAINER_ENTRY_NOTFOUND && aFind->first != CONTAINER_ENTRY_NOTFOUND )
+ {
+ aInsertList[aFind->first] = ::dbtools::quoteName( aQuote,*(pBegin+i));
+ }
+ }
+
+ i = 1;
+ for (::std::vector< ::rtl::OUString>::iterator aInsertIter = aInsertList.begin(); aInsertIter != aInsertList.end(); ++aInsertIter)
+ {
+ if ( aInsertIter->getLength() )
{
- aSql += ::dbtools::quoteName( aQuote,*pBegin);
+ aSql += *aInsertIter;
aSql += aComma;
aValues += aPara;
}
}
+
aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")));
aValues = aValues.replaceAt(aValues.getLength()-1,1,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")")));
@@ -344,7 +360,7 @@ namespace dbaui
ODatabaseExport::TPositions::const_iterator aPosIter = _rvColumns.begin();
for(sal_Int32 i = 1;aPosIter != _rvColumns.end();++aPosIter)
{
- sal_Int32 nPos = aPosIter->second;
+ sal_Int32 nPos = aPosIter->first;
if ( nPos == CONTAINER_ENTRY_NOTFOUND )
{
++i; // otherwise we don't get the correct value when only the 2nd source column was selected