diff options
author | Oliver Bolte <obo@openoffice.org> | 2004-06-01 09:11:31 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2004-06-01 09:11:31 +0000 |
commit | ff7d8997835bbde0db241f68c3e0bfc3f561f81d (patch) | |
tree | 5b38445ad2cb58879cf40987014d9d02b53e8cfb /dbaccess/source/ui/browser/dsbrowserDnD.cxx | |
parent | INTEGRATION: CWS oj5 (1.75.52); FILE MERGED (diff) | |
download | core-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.cxx | 30 |
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 |