diff options
author | sb <sb@openoffice.org> | 2010-05-20 15:46:46 +0200 |
---|---|---|
committer | sb <sb@openoffice.org> | 2010-05-20 15:46:46 +0200 |
commit | 0b313fc65470d5a08051a614e3bfed544193d500 (patch) | |
tree | e082d0995b71cd101af8575d9fa36eeb8ed296af | |
parent | 5d861c007999bbcc85ede771424a9fb8bd1e3e27 (diff) | |
parent | 1a3fc73ec41827a561449c6343afac280452af8e (diff) |
sb120: merged in DEV300_m78
-rw-r--r-- | dbaccess/source/core/api/KeySet.cxx | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx index 04bef19278b1..9d5188ceffc4 100644 --- a/dbaccess/source/core/api/KeySet.cxx +++ b/dbaccess/source/core/api/KeySet.cxx @@ -367,15 +367,17 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet,const ::rtl::O } Sequence< ::rtl::OUString> aBestColumnNames; - if ( aBestRowColumnNames.empty() ) + if ( !aBestRowColumnNames.empty() ) { - if ( xKeyColumns.is() ) - aBestColumnNames = xKeyColumns->getElementNames(); - } - else aBestColumnNames = Sequence< ::rtl::OUString>(&aBestRowColumnNames[0],aBestRowColumnNames.size()); + ::dbaccess::getColumnPositions(xSup->getColumns(),aBestColumnNames,m_sUpdateTableName,(*m_pKeyColumnNames)); + } - ::dbaccess::getColumnPositions(xSup->getColumns(),aBestColumnNames,m_sUpdateTableName,(*m_pKeyColumnNames)); + if (m_pKeyColumnNames->empty() && xKeyColumns.is()) + { + aBestColumnNames = xKeyColumns->getElementNames(); + ::dbaccess::getColumnPositions(xSup->getColumns(),aBestColumnNames,m_sUpdateTableName,(*m_pKeyColumnNames)); + } ::dbaccess::getColumnPositions(xSup->getColumns(),xSourceColumns->getElementNames(),m_sUpdateTableName,(*m_pColumnNames)); ::dbaccess::getColumnPositions(xSup->getColumns(),aParameterColumns,m_sUpdateTableName,(*m_pParameterNames)); |