summaryrefslogtreecommitdiff
path: root/dbaccess
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
commitcea09e968c10682ade933a40038cb0b3eb658187 (patch)
treedffa305995cd768662e36f697c47e8a83689ad3c /dbaccess
parentd4d5d883ecbc6e04cd28bb49be4c85f560a1bc48 (diff)
dba33f: #i108548# handle Label property from parse column and rowsetcolumn
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/source/core/api/CRowSetColumn.cxx4
-rw-r--r--dbaccess/source/core/api/CRowSetColumn.hxx1
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.cxx4
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.hxx2
-rw-r--r--dbaccess/source/core/api/RowSet.cxx13
-rw-r--r--dbaccess/source/core/api/SingleSelectQueryComposer.cxx2
-rw-r--r--dbaccess/source/core/api/query.cxx2
-rw-r--r--dbaccess/source/ui/browser/unodatbr.cxx7
8 files changed, 30 insertions, 5 deletions
diff --git a/dbaccess/source/core/api/CRowSetColumn.cxx b/dbaccess/source/core/api/CRowSetColumn.cxx
index 0974963dfd72..20e3c639eb88 100644
--- a/dbaccess/source/core/api/CRowSetColumn.cxx
+++ b/dbaccess/source/core/api/CRowSetColumn.cxx
@@ -53,8 +53,8 @@ namespace dbaccess
//------------------------------------------------------------------------------
ORowSetColumn::ORowSetColumn( const Reference < XResultSetMetaData >& _xMetaData, const Reference < XRow >& _xRow, sal_Int32 _nPos,
- const Reference< XDatabaseMetaData >& _rxDBMeta, const ::rtl::OUString& _rDescription, ORowSetCacheIterator& _rColumnValue )
- :ORowSetDataColumn( _xMetaData, _xRow, NULL, _nPos, _rxDBMeta, _rDescription, _rColumnValue )
+ const Reference< XDatabaseMetaData >& _rxDBMeta, const ::rtl::OUString& _rDescription, const ::rtl::OUString& i_sLabel,ORowSetCacheIterator& _rColumnValue )
+ :ORowSetDataColumn( _xMetaData, _xRow, NULL, _nPos, _rxDBMeta, _rDescription, i_sLabel,_rColumnValue )
{
}
diff --git a/dbaccess/source/core/api/CRowSetColumn.hxx b/dbaccess/source/core/api/CRowSetColumn.hxx
index 45d71d8e513a..317a28f15db1 100644
--- a/dbaccess/source/core/api/CRowSetColumn.hxx
+++ b/dbaccess/source/core/api/CRowSetColumn.hxx
@@ -56,6 +56,7 @@ namespace dbaccess
sal_Int32 _nPos,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxDBMeta,
const ::rtl::OUString& _rDescription,
+ const ::rtl::OUString& i_sLabel,
ORowSetCacheIterator& _rColumnValue);
virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
diff --git a/dbaccess/source/core/api/CRowSetDataColumn.cxx b/dbaccess/source/core/api/CRowSetDataColumn.cxx
index ae78b8af7817..036ebfae6466 100644
--- a/dbaccess/source/core/api/CRowSetDataColumn.cxx
+++ b/dbaccess/source/core/api/CRowSetDataColumn.cxx
@@ -74,10 +74,12 @@ ORowSetDataColumn::ORowSetDataColumn( const Reference < XResultSetMetaData >&
sal_Int32 _nPos,
const Reference< XDatabaseMetaData >& _rxDBMeta,
const ::rtl::OUString& _rDescription,
+ const ::rtl::OUString& i_sLabel,
const ORowSetCacheIterator& _rColumnValue)
:ODataColumn(_xMetaData,_xRow,_xRowUpdate,_nPos,_rxDBMeta)
,m_aColumnValue(_rColumnValue)
,m_aDescription(_rDescription)
+ ,m_sLabel(i_sLabel)
{
DBG_CTOR(ORowSetDataColumn,NULL);
OColumnSettings::registerProperties( *this );
@@ -149,6 +151,8 @@ void SAL_CALL ORowSetDataColumn::getFastPropertyValue( Any& rValue, sal_Int32 nH
rValue = ((*m_aColumnValue)->get())[m_nPos].makeAny();
}
}
+ else if ( PROPERTY_ID_LABEL == nHandle && m_sLabel.getLength() )
+ rValue <<= m_sLabel;
else
ODataColumn::getFastPropertyValue( rValue, nHandle );
}
diff --git a/dbaccess/source/core/api/CRowSetDataColumn.hxx b/dbaccess/source/core/api/CRowSetDataColumn.hxx
index ceec7344737c..f6a3446755df 100644
--- a/dbaccess/source/core/api/CRowSetDataColumn.hxx
+++ b/dbaccess/source/core/api/CRowSetDataColumn.hxx
@@ -51,6 +51,7 @@ namespace dbaccess
ORowSetCacheIterator m_aColumnValue;
::com::sun::star::uno::Any m_aOldValue;
+ ::rtl::OUString m_sLabel;
::rtl::OUString m_aDescription; // description
ORowSetBase* m_pRowSet;
@@ -62,6 +63,7 @@ namespace dbaccess
sal_Int32 _nPos,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxDBMeta,
const ::rtl::OUString& _rDescription,
+ const ::rtl::OUString& i_sLabel,
const ORowSetCacheIterator& _rColumnValue);
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 01f6d7d3259b..1531f232e5e7 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -1843,6 +1843,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
i+1,
m_xActiveConnection->getMetaData(),
aDescription,
+ ::rtl::OUString(),
m_aCurrentRow);
aColumnMap.insert(StringMap::value_type(sName,0));
aColumns->get().push_back(pColumn);
@@ -1933,14 +1934,22 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
if(xInfo.is() && xInfo->hasPropertyByName(PROPERTY_DESCRIPTION))
aDescription = comphelper::getString(xColumn->getPropertyValue(PROPERTY_DESCRIPTION));
+ ::rtl::OUString sParseLabel;
+ if ( xColumn.is() )
+ {
+ xColumn->getPropertyValue(PROPERTY_LABEL) >>= sParseLabel;
+ }
ORowSetDataColumn* pColumn = new ORowSetDataColumn( getMetaData(),
this,
this,
i,
m_xActiveConnection->getMetaData(),
aDescription,
+ sParseLabel,
m_aCurrentRow);
aColumns->get().push_back(pColumn);
+
+
if(!sColumnLabel.getLength())
{
if(xColumn.is())
@@ -2761,11 +2770,15 @@ ORowSetClone::ORowSetClone( const ::comphelper::ComponentContext& _rContext, ORo
rParent.m_pColumns->getByName(*pIter) >>= xColumn;
if(xColumn->getPropertySetInfo()->hasPropertyByName(PROPERTY_DESCRIPTION))
aDescription = comphelper::getString(xColumn->getPropertyValue(PROPERTY_DESCRIPTION));
+
+ ::rtl::OUString sParseLabel;
+ xColumn->getPropertyValue(PROPERTY_LABEL) >>= sParseLabel;
ORowSetColumn* pColumn = new ORowSetColumn( rParent.getMetaData(),
this,
i,
rParent.m_xActiveConnection->getMetaData(),
aDescription,
+ sParseLabel,
m_aCurrentRow);
aColumns->get().push_back(pColumn);
pColumn->setName(*pIter);
diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index c7dd2c130f44..1a1f9bc1d679 100644
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@ -865,7 +865,7 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( ) thr
{
// This is a valid case. If we can syntactically parse the query, but not semantically
// (e.g. because it is based on a table we do not know), then there will be no SelectColumns
- aSelectColumns = ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, m_xMetaData );
+ aSelectColumns = ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, m_xMetaData ,xQueryColumns);
break;
}
diff --git a/dbaccess/source/core/api/query.cxx b/dbaccess/source/core/api/query.cxx
index 4f7e9b60547c..ad5ccbc2aee3 100644
--- a/dbaccess/source/core/api/query.cxx
+++ b/dbaccess/source/core/api/query.cxx
@@ -229,7 +229,7 @@ void OQuery::rebuildColumns()
Reference< XDatabaseMetaData > xDBMeta( m_xConnection->getMetaData(), UNO_QUERY_THROW );
::vos::ORef< OSQLColumns > aParseColumns(
- ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, xDBMeta ) );
+ ::connectivity::parse::OParseColumn::createColumnsForResultSet( xResultSetMeta, xDBMeta,xColumnDefinitions ) );
xColumns = OPrivateColumns::createWithIntrinsicNames(
aParseColumns, xDBMeta->storesMixedCaseQuotedIdentifiers(), *this, m_aMutex );
if ( !xColumns.is() )
diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx
index d6b6483f4a7f..eda9fc01a3e4 100644
--- a/dbaccess/source/ui/browser/unodatbr.cxx
+++ b/dbaccess/source/ui/browser/unodatbr.cxx
@@ -650,7 +650,12 @@ sal_Bool SbaTableQueryBrowser::InitializeGridModel(const Reference< ::com::sun::
}
aInitialValues.push_back( NamedValue( PROPERTY_CONTROLSOURCE, makeAny( *pIter ) ) );
- aInitialValues.push_back( NamedValue( PROPERTY_LABEL, makeAny( *pIter ) ) );
+ ::rtl::OUString sLabel;
+ xColumn->getPropertyValue(PROPERTY_LABEL) >>= sLabel;
+ if ( sLabel.getLength() )
+ aInitialValues.push_back( NamedValue( PROPERTY_LABEL, makeAny( sLabel ) ) );
+ else
+ aInitialValues.push_back( NamedValue( PROPERTY_LABEL, makeAny( *pIter ) ) );
Reference< XPropertySet > xGridCol( xColFactory->createColumn( aCurrentModelType ), UNO_SET_THROW );
Reference< XPropertySetInfo > xGridColPSI( xGridCol->getPropertySetInfo(), UNO_SET_THROW );