summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-01-22 10:31:43 +0100
committerOcke Janssen [oj] <Ocke.Janssen@sun.com>2010-01-22 10:31:43 +0100
commit328b5e748a287669b4b894dc7ac5b2227ecc2e99 (patch)
treec6d15c3e100ba97443b9f26d0aeafd84ebfac70b
parent02f6eae3aacc973f98fce99219ee74ddb75f2c9a (diff)
dba33f: #i108548# handle Label property from parse column and rowsetcolumn
-rw-r--r--connectivity/inc/connectivity/PColumn.hxx4
-rw-r--r--connectivity/source/parse/PColumn.cxx16
2 files changed, 17 insertions, 3 deletions
diff --git a/connectivity/inc/connectivity/PColumn.hxx b/connectivity/inc/connectivity/PColumn.hxx
index cf41f4f08e19..4c23e8418fe8 100644
--- a/connectivity/inc/connectivity/PColumn.hxx
+++ b/connectivity/inc/connectivity/PColumn.hxx
@@ -36,6 +36,7 @@
#include <vos/ref.hxx>
#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
#include <comphelper/proparrhlp.hxx>
namespace connectivity
@@ -99,7 +100,8 @@ namespace connectivity
static ::vos::ORef< OSQLColumns >
createColumnsForResultSet(
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData >& _rxResMetaData,
- const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxDBMetaData
+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxDBMetaData,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& i_xQueryColumns
);
DECLARE_STL_USTRINGACCESS_MAP(int,StringMap);
diff --git a/connectivity/source/parse/PColumn.cxx b/connectivity/source/parse/PColumn.cxx
index 7c61411e7f29..0134c1a3aab3 100644
--- a/connectivity/source/parse/PColumn.cxx
+++ b/connectivity/source/parse/PColumn.cxx
@@ -45,6 +45,7 @@ using namespace connectivity::parse;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
// -------------------------------------------------------------------------
OParseColumn::OParseColumn(const Reference<XPropertySet>& _xColumn,sal_Bool _bCase)
@@ -103,14 +104,25 @@ OParseColumn::OParseColumn( const ::rtl::OUString& _Name,
// -------------------------------------------------------------------------
::vos::ORef< OSQLColumns > OParseColumn::createColumnsForResultSet( const Reference< XResultSetMetaData >& _rxResMetaData,
- const Reference< XDatabaseMetaData >& _rxDBMetaData )
+ const Reference< XDatabaseMetaData >& _rxDBMetaData,const Reference< XNameAccess>& i_xQueryColumns )
{
sal_Int32 nColumnCount = _rxResMetaData->getColumnCount();
::vos::ORef< OSQLColumns > aReturn( new OSQLColumns ); aReturn->get().reserve( nColumnCount );
StringMap aColumnMap;
for ( sal_Int32 i = 1; i <= nColumnCount; ++i )
- aReturn->get().push_back( createColumnForResultSet( _rxResMetaData, _rxDBMetaData, i ,aColumnMap) );
+ {
+ OParseColumn* pColumn = createColumnForResultSet( _rxResMetaData, _rxDBMetaData, i,aColumnMap );
+ aReturn->get().push_back( pColumn );
+ if ( i_xQueryColumns.is() && i_xQueryColumns->hasByName(pColumn->getRealName()) )
+ {
+ Reference<XPropertySet> xColumn(i_xQueryColumns->getByName(pColumn->getRealName()),UNO_QUERY_THROW);
+ ::rtl::OUString sLabel;
+ xColumn->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_LABEL)) >>= sLabel;
+ if ( sLabel.getLength() )
+ pColumn->setLabel(sLabel);
+ }
+ }
return aReturn;
}