1*96de5490SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*96de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*96de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*96de5490SAndrew Rist * distributed with this work for additional information
6*96de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*96de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*96de5490SAndrew Rist * "License"); you may not use this file except in compliance
9*96de5490SAndrew Rist * with the License. You may obtain a copy of the License at
10*96de5490SAndrew Rist *
11*96de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*96de5490SAndrew Rist *
13*96de5490SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*96de5490SAndrew Rist * software distributed under the License is distributed on an
15*96de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*96de5490SAndrew Rist * KIND, either express or implied. See the License for the
17*96de5490SAndrew Rist * specific language governing permissions and limitations
18*96de5490SAndrew Rist * under the License.
19*96de5490SAndrew Rist *
20*96de5490SAndrew Rist *************************************************************/
21*96de5490SAndrew Rist
22*96de5490SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_dbaccess.hxx"
26cdf0e10cSrcweir #ifndef _DBACORE_RESULTCOLUMN_HXX_
27cdf0e10cSrcweir #include "resultcolumn.hxx"
28cdf0e10cSrcweir #endif
29cdf0e10cSrcweir #ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
30cdf0e10cSrcweir #include <com/sun/star/lang/DisposedException.hpp>
31cdf0e10cSrcweir #endif
32cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_
33cdf0e10cSrcweir #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
34cdf0e10cSrcweir #endif
35cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_
36cdf0e10cSrcweir #include <com/sun/star/sdbc/DataType.hpp>
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_
39cdf0e10cSrcweir #include <com/sun/star/sdbc/ColumnValue.hpp>
40cdf0e10cSrcweir #endif
41cdf0e10cSrcweir #ifndef _CPPUHELPER_TYPEPROVIDER_HXX_
42cdf0e10cSrcweir #include <cppuhelper/typeprovider.hxx>
43cdf0e10cSrcweir #endif
44cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX
45cdf0e10cSrcweir #include <tools/debug.hxx>
46cdf0e10cSrcweir #endif
47cdf0e10cSrcweir #ifndef TOOLS_DIAGNOSE_EX_H
48cdf0e10cSrcweir #include <tools/diagnose_ex.h>
49cdf0e10cSrcweir #endif
50cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBASTRINGS_HRC
51cdf0e10cSrcweir #include "dbastrings.hrc"
52cdf0e10cSrcweir #endif
53cdf0e10cSrcweir #ifndef _DBASHARED_APITOOLS_HXX_
54cdf0e10cSrcweir #include "apitools.hxx"
55cdf0e10cSrcweir #endif
56cdf0e10cSrcweir #ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
57cdf0e10cSrcweir #include <com/sun/star/beans/PropertyAttribute.hpp>
58cdf0e10cSrcweir #endif
59cdf0e10cSrcweir #ifndef _CPPUHELPER_EXC_HLP_HXX_
60cdf0e10cSrcweir #include <cppuhelper/exc_hlp.hxx>
61cdf0e10cSrcweir #endif
62cdf0e10cSrcweir #ifndef _OSL_THREAD_H_
63cdf0e10cSrcweir #include <osl/thread.h>
64cdf0e10cSrcweir #endif
65cdf0e10cSrcweir
66cdf0e10cSrcweir using namespace ::com::sun::star::sdbc;
67cdf0e10cSrcweir using namespace ::com::sun::star::beans;
68cdf0e10cSrcweir using namespace ::com::sun::star::uno;
69cdf0e10cSrcweir using namespace ::com::sun::star::lang;
70cdf0e10cSrcweir using namespace ::com::sun::star::container;
71cdf0e10cSrcweir using namespace ::osl;
72cdf0e10cSrcweir using namespace ::comphelper;
73cdf0e10cSrcweir using namespace ::cppu;
74cdf0e10cSrcweir using namespace dbaccess;
75cdf0e10cSrcweir
DBG_NAME(OResultColumn)76cdf0e10cSrcweir DBG_NAME(OResultColumn)
77cdf0e10cSrcweir //--------------------------------------------------------------------------
78cdf0e10cSrcweir OResultColumn::OResultColumn( const Reference < XResultSetMetaData >& _xMetaData, sal_Int32 _nPos,
79cdf0e10cSrcweir const Reference< XDatabaseMetaData >& _rxDBMeta )
80cdf0e10cSrcweir :OColumn( true )
81cdf0e10cSrcweir ,m_xMetaData( _xMetaData )
82cdf0e10cSrcweir ,m_xDBMetaData( _rxDBMeta )
83cdf0e10cSrcweir ,m_nPos( _nPos )
84cdf0e10cSrcweir {
85cdf0e10cSrcweir DBG_CTOR(OResultColumn,NULL);
86cdf0e10cSrcweir }
87cdf0e10cSrcweir // -----------------------------------------------------------------------------
impl_determineIsRowVersion_nothrow()88cdf0e10cSrcweir void OResultColumn::impl_determineIsRowVersion_nothrow()
89cdf0e10cSrcweir {
90cdf0e10cSrcweir if ( m_aIsRowVersion.hasValue() )
91cdf0e10cSrcweir return;
92cdf0e10cSrcweir m_aIsRowVersion <<= (sal_Bool)(sal_False);
93cdf0e10cSrcweir
94cdf0e10cSrcweir OSL_ENSURE( m_xDBMetaData.is(), "OResultColumn::impl_determineIsRowVersion_nothrow: no DBMetaData!" );
95cdf0e10cSrcweir if ( !m_xDBMetaData.is() )
96cdf0e10cSrcweir return;
97cdf0e10cSrcweir
98cdf0e10cSrcweir try
99cdf0e10cSrcweir {
100cdf0e10cSrcweir ::rtl::OUString sCatalog, sSchema, sTable, sColumnName;
101cdf0e10cSrcweir getPropertyValue( PROPERTY_CATALOGNAME ) >>= sCatalog;
102cdf0e10cSrcweir getPropertyValue( PROPERTY_SCHEMANAME ) >>= sSchema;
103cdf0e10cSrcweir getPropertyValue( PROPERTY_TABLENAME ) >>= sTable;
104cdf0e10cSrcweir getPropertyValue( PROPERTY_NAME ) >>= sColumnName;
105cdf0e10cSrcweir
106cdf0e10cSrcweir try
107cdf0e10cSrcweir {
108cdf0e10cSrcweir Reference< XResultSet > xVersionColumns = m_xDBMetaData->getVersionColumns(
109cdf0e10cSrcweir makeAny( sCatalog ), sSchema, sTable );
110cdf0e10cSrcweir if ( xVersionColumns.is() ) // allowed to be NULL
111cdf0e10cSrcweir {
112cdf0e10cSrcweir Reference< XRow > xResultRow( xVersionColumns, UNO_QUERY_THROW );
113cdf0e10cSrcweir while ( xVersionColumns->next() )
114cdf0e10cSrcweir {
115cdf0e10cSrcweir if ( xResultRow->getString( 2 ) == sColumnName )
116cdf0e10cSrcweir {
117cdf0e10cSrcweir m_aIsRowVersion <<= (sal_Bool)(sal_True);
118cdf0e10cSrcweir break;
119cdf0e10cSrcweir }
120cdf0e10cSrcweir }
121cdf0e10cSrcweir }
122cdf0e10cSrcweir }
123cdf0e10cSrcweir catch(const SQLException&)
124cdf0e10cSrcweir {
125cdf0e10cSrcweir }
126cdf0e10cSrcweir }
127cdf0e10cSrcweir catch( const Exception& )
128cdf0e10cSrcweir {
129cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
130cdf0e10cSrcweir }
131cdf0e10cSrcweir }
132cdf0e10cSrcweir // -----------------------------------------------------------------------------
~OResultColumn()133cdf0e10cSrcweir OResultColumn::~OResultColumn()
134cdf0e10cSrcweir {
135cdf0e10cSrcweir DBG_DTOR(OResultColumn,NULL);
136cdf0e10cSrcweir }
137cdf0e10cSrcweir // com::sun::star::lang::XTypeProvider
138cdf0e10cSrcweir //--------------------------------------------------------------------------
getImplementationId()139cdf0e10cSrcweir Sequence< sal_Int8 > OResultColumn::getImplementationId() throw (RuntimeException)
140cdf0e10cSrcweir {
141cdf0e10cSrcweir static OImplementationId * pId = 0;
142cdf0e10cSrcweir if (! pId)
143cdf0e10cSrcweir {
144cdf0e10cSrcweir MutexGuard aGuard( Mutex::getGlobalMutex() );
145cdf0e10cSrcweir if (! pId)
146cdf0e10cSrcweir {
147cdf0e10cSrcweir static OImplementationId aId;
148cdf0e10cSrcweir pId = &aId;
149cdf0e10cSrcweir }
150cdf0e10cSrcweir }
151cdf0e10cSrcweir return pId->getImplementationId();
152cdf0e10cSrcweir }
153cdf0e10cSrcweir
154cdf0e10cSrcweir // XServiceInfo
155cdf0e10cSrcweir //------------------------------------------------------------------------------
getImplementationName()156cdf0e10cSrcweir rtl::OUString OResultColumn::getImplementationName( ) throw(RuntimeException)
157cdf0e10cSrcweir {
158cdf0e10cSrcweir return rtl::OUString::createFromAscii("com.sun.star.sdb.OResultColumn");
159cdf0e10cSrcweir }
160cdf0e10cSrcweir
161cdf0e10cSrcweir //------------------------------------------------------------------------------
getSupportedServiceNames()162cdf0e10cSrcweir Sequence< ::rtl::OUString > OResultColumn::getSupportedServiceNames( ) throw (RuntimeException)
163cdf0e10cSrcweir {
164cdf0e10cSrcweir Sequence< ::rtl::OUString > aSNS( 2 );
165cdf0e10cSrcweir aSNS[0] = SERVICE_SDBCX_COLUMN;
166cdf0e10cSrcweir aSNS[1] = SERVICE_SDB_RESULTCOLUMN;
167cdf0e10cSrcweir return aSNS;
168cdf0e10cSrcweir }
169cdf0e10cSrcweir
170cdf0e10cSrcweir // OComponentHelper
171cdf0e10cSrcweir //------------------------------------------------------------------------------
disposing()172cdf0e10cSrcweir void OResultColumn::disposing()
173cdf0e10cSrcweir {
174cdf0e10cSrcweir OColumn::disposing();
175cdf0e10cSrcweir
176cdf0e10cSrcweir MutexGuard aGuard(m_aMutex);
177cdf0e10cSrcweir m_xMetaData = NULL;
178cdf0e10cSrcweir }
179cdf0e10cSrcweir
180cdf0e10cSrcweir // comphelper::OPropertyArrayUsageHelper
181cdf0e10cSrcweir //------------------------------------------------------------------------------
createArrayHelper() const182cdf0e10cSrcweir ::cppu::IPropertyArrayHelper* OResultColumn::createArrayHelper( ) const
183cdf0e10cSrcweir {
184cdf0e10cSrcweir BEGIN_PROPERTY_HELPER(21)
185cdf0e10cSrcweir DECL_PROP1(CATALOGNAME, ::rtl::OUString, READONLY);
186cdf0e10cSrcweir DECL_PROP1(DISPLAYSIZE, sal_Int32, READONLY);
187cdf0e10cSrcweir DECL_PROP1_BOOL(ISAUTOINCREMENT, READONLY);
188cdf0e10cSrcweir DECL_PROP1_BOOL(ISCASESENSITIVE, READONLY);
189cdf0e10cSrcweir DECL_PROP1_BOOL(ISCURRENCY, READONLY);
190cdf0e10cSrcweir DECL_PROP1_BOOL(ISDEFINITELYWRITABLE, READONLY);
191cdf0e10cSrcweir DECL_PROP1(ISNULLABLE, sal_Int32, READONLY);
192cdf0e10cSrcweir DECL_PROP1_BOOL(ISREADONLY, READONLY);
193cdf0e10cSrcweir DECL_PROP1_BOOL(ISROWVERSION, READONLY);
194cdf0e10cSrcweir DECL_PROP1_BOOL(ISSEARCHABLE, READONLY);
195cdf0e10cSrcweir DECL_PROP1_BOOL(ISSIGNED, READONLY);
196cdf0e10cSrcweir DECL_PROP1_BOOL(ISWRITABLE, READONLY);
197cdf0e10cSrcweir DECL_PROP1(LABEL, ::rtl::OUString, READONLY);
198cdf0e10cSrcweir DECL_PROP1(NAME, ::rtl::OUString, READONLY);
199cdf0e10cSrcweir DECL_PROP1(PRECISION, sal_Int32, READONLY);
200cdf0e10cSrcweir DECL_PROP1(SCALE, sal_Int32, READONLY);
201cdf0e10cSrcweir DECL_PROP1(SCHEMANAME, ::rtl::OUString, READONLY);
202cdf0e10cSrcweir DECL_PROP1(SERVICENAME, ::rtl::OUString, READONLY);
203cdf0e10cSrcweir DECL_PROP1(TABLENAME, ::rtl::OUString, READONLY);
204cdf0e10cSrcweir DECL_PROP1(TYPE, sal_Int32, READONLY);
205cdf0e10cSrcweir DECL_PROP1(TYPENAME, ::rtl::OUString, READONLY);
206cdf0e10cSrcweir END_PROPERTY_HELPER();
207cdf0e10cSrcweir }
208cdf0e10cSrcweir
209cdf0e10cSrcweir // cppu::OPropertySetHelper
210cdf0e10cSrcweir //------------------------------------------------------------------------------
getInfoHelper()211cdf0e10cSrcweir ::cppu::IPropertyArrayHelper& OResultColumn::getInfoHelper()
212cdf0e10cSrcweir {
213cdf0e10cSrcweir return *static_cast< ::comphelper::OPropertyArrayUsageHelper< OResultColumn >* >(this)->getArrayHelper();
214cdf0e10cSrcweir }
215cdf0e10cSrcweir
216cdf0e10cSrcweir //------------------------------------------------------------------------------
217cdf0e10cSrcweir namespace
218cdf0e10cSrcweir {
219cdf0e10cSrcweir template< typename TYPE >
obtain(Any & _out_rValue,::boost::optional<TYPE> _rCache,const sal_Int32 _nPos,const Reference<XResultSetMetaData> & _rxResultMeta,TYPE (SAL_CALL XResultSetMetaData::* Getter)(sal_Int32))220cdf0e10cSrcweir void obtain( Any& _out_rValue, ::boost::optional< TYPE > _rCache, const sal_Int32 _nPos, const Reference < XResultSetMetaData >& _rxResultMeta, TYPE (SAL_CALL XResultSetMetaData::*Getter)( sal_Int32 ) )
221cdf0e10cSrcweir {
222cdf0e10cSrcweir if ( !_rCache )
223cdf0e10cSrcweir _rCache.reset( (_rxResultMeta.get()->*Getter)( _nPos ) );
224cdf0e10cSrcweir _out_rValue <<= *_rCache;
225cdf0e10cSrcweir }
226cdf0e10cSrcweir }
227cdf0e10cSrcweir
228cdf0e10cSrcweir //------------------------------------------------------------------------------
getFastPropertyValue(Any & rValue,sal_Int32 nHandle) const229cdf0e10cSrcweir void OResultColumn::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
230cdf0e10cSrcweir {
231cdf0e10cSrcweir try
232cdf0e10cSrcweir {
233cdf0e10cSrcweir if ( OColumn::isRegisteredProperty( nHandle ) )
234cdf0e10cSrcweir {
235cdf0e10cSrcweir OColumn::getFastPropertyValue( rValue, nHandle );
236cdf0e10cSrcweir }
237cdf0e10cSrcweir else
238cdf0e10cSrcweir {
239cdf0e10cSrcweir switch (nHandle)
240cdf0e10cSrcweir {
241cdf0e10cSrcweir case PROPERTY_ID_ISROWVERSION:
242cdf0e10cSrcweir const_cast< OResultColumn* >( this )->impl_determineIsRowVersion_nothrow();
243cdf0e10cSrcweir rValue = m_aIsRowVersion;
244cdf0e10cSrcweir break;
245cdf0e10cSrcweir case PROPERTY_ID_TABLENAME:
246cdf0e10cSrcweir rValue <<= m_xMetaData->getTableName(m_nPos);
247cdf0e10cSrcweir break;
248cdf0e10cSrcweir case PROPERTY_ID_SCHEMANAME:
249cdf0e10cSrcweir rValue <<= m_xMetaData->getSchemaName(m_nPos);
250cdf0e10cSrcweir break;
251cdf0e10cSrcweir case PROPERTY_ID_CATALOGNAME:
252cdf0e10cSrcweir rValue <<= m_xMetaData->getCatalogName(m_nPos);
253cdf0e10cSrcweir break;
254cdf0e10cSrcweir case PROPERTY_ID_ISSIGNED:
255cdf0e10cSrcweir obtain( rValue, m_isSigned, m_nPos, m_xMetaData, &XResultSetMetaData::isSigned );
256cdf0e10cSrcweir break;
257cdf0e10cSrcweir case PROPERTY_ID_ISCURRENCY:
258cdf0e10cSrcweir obtain( rValue, m_isCurrency, m_nPos, m_xMetaData, &XResultSetMetaData::isCurrency );
259cdf0e10cSrcweir break;
260cdf0e10cSrcweir case PROPERTY_ID_ISSEARCHABLE:
261cdf0e10cSrcweir obtain( rValue, m_bSearchable, m_nPos, m_xMetaData, &XResultSetMetaData::isSearchable );
262cdf0e10cSrcweir break;
263cdf0e10cSrcweir case PROPERTY_ID_ISCASESENSITIVE:
264cdf0e10cSrcweir obtain( rValue, m_isCaseSensitive, m_nPos, m_xMetaData, &XResultSetMetaData::isCaseSensitive );
265cdf0e10cSrcweir break;
266cdf0e10cSrcweir case PROPERTY_ID_ISREADONLY:
267cdf0e10cSrcweir obtain( rValue, m_isReadOnly, m_nPos, m_xMetaData, &XResultSetMetaData::isReadOnly );
268cdf0e10cSrcweir break;
269cdf0e10cSrcweir case PROPERTY_ID_ISWRITABLE:
270cdf0e10cSrcweir obtain( rValue, m_isWritable, m_nPos, m_xMetaData, &XResultSetMetaData::isWritable );
271cdf0e10cSrcweir break;
272cdf0e10cSrcweir case PROPERTY_ID_ISDEFINITELYWRITABLE:
273cdf0e10cSrcweir obtain( rValue, m_isDefinitelyWritable, m_nPos, m_xMetaData, &XResultSetMetaData::isDefinitelyWritable );
274cdf0e10cSrcweir break;
275cdf0e10cSrcweir case PROPERTY_ID_ISAUTOINCREMENT:
276cdf0e10cSrcweir obtain( rValue, m_isAutoIncrement, m_nPos, m_xMetaData, &XResultSetMetaData::isAutoIncrement );
277cdf0e10cSrcweir break;
278cdf0e10cSrcweir case PROPERTY_ID_SERVICENAME:
279cdf0e10cSrcweir rValue <<= m_xMetaData->getColumnServiceName(m_nPos);
280cdf0e10cSrcweir break;
281cdf0e10cSrcweir case PROPERTY_ID_LABEL:
282cdf0e10cSrcweir obtain( rValue, m_sColumnLabel, m_nPos, m_xMetaData, &XResultSetMetaData::getColumnLabel );
283cdf0e10cSrcweir break;
284cdf0e10cSrcweir case PROPERTY_ID_DISPLAYSIZE:
285cdf0e10cSrcweir obtain( rValue, m_nColumnDisplaySize, m_nPos, m_xMetaData, &XResultSetMetaData::getColumnDisplaySize );
286cdf0e10cSrcweir break;
287cdf0e10cSrcweir case PROPERTY_ID_TYPE:
288cdf0e10cSrcweir obtain( rValue, m_nColumnType, m_nPos, m_xMetaData, &XResultSetMetaData::getColumnType );
289cdf0e10cSrcweir break;
290cdf0e10cSrcweir case PROPERTY_ID_PRECISION:
291cdf0e10cSrcweir obtain( rValue, m_nPrecision, m_nPos, m_xMetaData, &XResultSetMetaData::getPrecision );
292cdf0e10cSrcweir break;
293cdf0e10cSrcweir case PROPERTY_ID_SCALE:
294cdf0e10cSrcweir obtain( rValue, m_nScale, m_nPos, m_xMetaData, &XResultSetMetaData::getScale );
295cdf0e10cSrcweir break;
296cdf0e10cSrcweir case PROPERTY_ID_ISNULLABLE:
297cdf0e10cSrcweir obtain( rValue, m_isNullable, m_nPos, m_xMetaData, &XResultSetMetaData::isNullable );
298cdf0e10cSrcweir break;
299cdf0e10cSrcweir case PROPERTY_ID_TYPENAME:
300cdf0e10cSrcweir rValue <<= m_xMetaData->getColumnTypeName(m_nPos);
301cdf0e10cSrcweir break;
302cdf0e10cSrcweir default:
303cdf0e10cSrcweir OSL_ENSURE( false, "OResultColumn::getFastPropertyValue: unknown property handle!" );
304cdf0e10cSrcweir break;
305cdf0e10cSrcweir }
306cdf0e10cSrcweir }
307cdf0e10cSrcweir }
308cdf0e10cSrcweir catch (SQLException& )
309cdf0e10cSrcweir {
310cdf0e10cSrcweir // default handling if we caught an exception
311cdf0e10cSrcweir switch (nHandle)
312cdf0e10cSrcweir {
313cdf0e10cSrcweir case PROPERTY_ID_LABEL:
314cdf0e10cSrcweir case PROPERTY_ID_TYPENAME:
315cdf0e10cSrcweir case PROPERTY_ID_SERVICENAME:
316cdf0e10cSrcweir case PROPERTY_ID_TABLENAME:
317cdf0e10cSrcweir case PROPERTY_ID_SCHEMANAME:
318cdf0e10cSrcweir case PROPERTY_ID_CATALOGNAME:
319cdf0e10cSrcweir // empty string'S
320cdf0e10cSrcweir rValue <<= rtl::OUString();
321cdf0e10cSrcweir break;
322cdf0e10cSrcweir case PROPERTY_ID_ISROWVERSION:
323cdf0e10cSrcweir case PROPERTY_ID_ISAUTOINCREMENT:
324cdf0e10cSrcweir case PROPERTY_ID_ISWRITABLE:
325cdf0e10cSrcweir case PROPERTY_ID_ISDEFINITELYWRITABLE:
326cdf0e10cSrcweir case PROPERTY_ID_ISCASESENSITIVE:
327cdf0e10cSrcweir case PROPERTY_ID_ISSEARCHABLE:
328cdf0e10cSrcweir case PROPERTY_ID_ISCURRENCY:
329cdf0e10cSrcweir case PROPERTY_ID_ISSIGNED:
330cdf0e10cSrcweir {
331cdf0e10cSrcweir sal_Bool bVal = sal_False;
332cdf0e10cSrcweir rValue.setValue(&bVal, getBooleanCppuType());
333cdf0e10cSrcweir } break;
334cdf0e10cSrcweir case PROPERTY_ID_ISREADONLY:
335cdf0e10cSrcweir {
336cdf0e10cSrcweir sal_Bool bVal = sal_True;
337cdf0e10cSrcweir rValue.setValue(&bVal, getBooleanCppuType());
338cdf0e10cSrcweir } break;
339cdf0e10cSrcweir case PROPERTY_ID_SCALE:
340cdf0e10cSrcweir case PROPERTY_ID_PRECISION:
341cdf0e10cSrcweir case PROPERTY_ID_DISPLAYSIZE:
342cdf0e10cSrcweir rValue <<= sal_Int32(0);
343cdf0e10cSrcweir break;
344cdf0e10cSrcweir case PROPERTY_ID_TYPE:
345cdf0e10cSrcweir rValue <<= sal_Int32(DataType::SQLNULL);
346cdf0e10cSrcweir break;
347cdf0e10cSrcweir case PROPERTY_ID_ISNULLABLE:
348cdf0e10cSrcweir rValue <<= ColumnValue::NULLABLE_UNKNOWN;
349cdf0e10cSrcweir break;
350cdf0e10cSrcweir }
351cdf0e10cSrcweir }
352cdf0e10cSrcweir }
353cdf0e10cSrcweir
354