Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include "filrow.hxx"
30 : : #include "shell.hxx"
31 : : #include "prov.hxx"
32 : :
33 : : using namespace fileaccess;
34 : : using namespace com::sun::star;
35 : : using namespace com::sun::star::uno;
36 : :
37 : : // Funktion for TypeConverting
38 : :
39 : :
40 : : template< class _type_ >
41 : 72092 : sal_Bool convert( shell* pShell,
42 : : uno::Reference< script::XTypeConverter >& xConverter,
43 : : uno::Any& rValue,
44 : : _type_& aReturn )
45 : : {
46 : : // Try first without converting
47 : 72092 : sal_Bool no_success = ! ( rValue >>= aReturn );
48 : :
49 [ # # # # : 72092 : if ( no_success )
# # # # -
+ # # # #
# # # # #
# # # # #
# # # # #
# # # + +
+ + ]
50 : : {
51 [ # # ][ # # ]: 274 : if( ! xConverter.is() )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ + - ][ + - ]
52 : : {
53 [ # # ][ # # ]: 274 : xConverter = uno::Reference< script::XTypeConverter >(
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ # # ][ # # ]
[ # # ]
[ # # # ]
[ + - ][ + - ]
[ + - ]
[ # # # ]
[ + - ][ + - ]
[ + - ]
[ # # # ]
54 : : pShell->m_xMultiServiceFactory->createInstance(
55 : : rtl::OUString("com.sun.star.script.Converter") ), uno::UNO_QUERY );
56 : : }
57 : :
58 : : try
59 : : {
60 [ # # ][ # # ]: 274 : if( rValue.hasValue() )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ - + ][ - + ]
61 : : {
62 : : uno::Any aConvertedValue
63 [ # # ][ # # ]: 0 : = xConverter->convertTo( rValue,getCppuType( static_cast< const _type_* >(0) ) );
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
64 [ # # ]: 0 : no_success = ! ( aConvertedValue >>= aReturn );
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
[ # # ]
[ # # # ]
65 : : }
66 : : else
67 : 274 : no_success = sal_True;
68 : : }
69 : 0 : catch (const lang::IllegalArgumentException&)
70 : : {
71 : 0 : no_success = sal_True;
72 : : }
73 : 0 : catch (const script::CannotConvertException&)
74 : : {
75 : 0 : no_success = sal_True;
76 : : }
77 : : }
78 : 72092 : return no_success;
79 : : }
80 : :
81 : :
82 : 82296 : XRow_impl::XRow_impl( shell* pMyShell,const uno::Sequence< uno::Any >& seq )
83 : : : m_aValueMap( seq ),
84 : : m_pMyShell( pMyShell ),
85 : : m_xProvider( pMyShell->m_pProvider ),
86 [ + - ][ + - ]: 82296 : m_xTypeConverter( 0 )
[ + - ][ + - ]
[ + - ]
87 : : {
88 : 82296 : }
89 : :
90 [ + - ][ + - ]: 82296 : XRow_impl::~XRow_impl()
91 : : {
92 [ - + ]: 164592 : }
93 : :
94 : :
95 : : void SAL_CALL
96 : 234214 : XRow_impl::acquire(
97 : : void )
98 : : throw()
99 : : {
100 : 234214 : OWeakObject::acquire();
101 : 234214 : }
102 : :
103 : : void SAL_CALL
104 : 234214 : XRow_impl::release(
105 : : void )
106 : : throw()
107 : : {
108 : 234214 : OWeakObject::release();
109 : 234214 : }
110 : :
111 : :
112 : : uno::Any SAL_CALL
113 : 0 : XRow_impl::queryInterface(
114 : : const uno::Type& rType )
115 : : throw( uno::RuntimeException )
116 : : {
117 : : uno::Any aRet = cppu::queryInterface( rType,
118 : : (static_cast< lang::XTypeProvider* >(this)),
119 [ # # ]: 0 : (static_cast< sdbc::XRow* >(this)) );
120 [ # # ][ # # ]: 0 : return aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType );
121 : : }
122 : :
123 : :
124 [ # # ][ # # ]: 0 : XTYPEPROVIDER_IMPL_2( XRow_impl,
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
125 : : lang::XTypeProvider,
126 : : sdbc::XRow )
127 : :
128 : :
129 : : sal_Bool SAL_CALL
130 : 5932 : XRow_impl::wasNull(
131 : : void )
132 : : throw( sdbc::SQLException,
133 : : uno::RuntimeException)
134 : : {
135 : 5932 : return m_nWasNull;
136 : : }
137 : :
138 : :
139 : : rtl::OUString SAL_CALL
140 : 9988 : XRow_impl::getString(
141 : : sal_Int32 columnIndex )
142 : : throw( sdbc::SQLException,
143 : : uno::RuntimeException)
144 : : {
145 [ + - ][ - + ]: 9988 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ - + ]
146 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
147 : 9988 : rtl::OUString Value;
148 [ + - ]: 9988 : osl::MutexGuard aGuard( m_aMutex );
149 [ + - ][ + - ]: 9988 : m_nWasNull = ::convert<rtl::OUString>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
150 [ + - ]: 9988 : return Value;
151 : : }
152 : :
153 : : sal_Bool SAL_CALL
154 : 6056 : XRow_impl::getBoolean(
155 : : sal_Int32 columnIndex )
156 : : throw( sdbc::SQLException,
157 : : uno::RuntimeException)
158 : : {
159 [ + - ][ - + ]: 6056 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ - + ]
160 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
161 : 6056 : sal_Bool Value( false );
162 [ + - ]: 6056 : osl::MutexGuard aGuard( m_aMutex );
163 [ + - ][ + - ]: 6056 : m_nWasNull = ::convert<sal_Bool>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
164 [ + - ]: 6056 : return Value;
165 : : }
166 : :
167 : :
168 : : sal_Int8 SAL_CALL
169 : 0 : XRow_impl::getByte(
170 : : sal_Int32 columnIndex )
171 : : throw( sdbc::SQLException,
172 : : uno::RuntimeException)
173 : : {
174 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
175 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
176 : 0 : sal_Int8 Value( 0 );
177 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
178 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<sal_Int8>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
179 [ # # ]: 0 : return Value;
180 : : }
181 : :
182 : : sal_Int16 SAL_CALL
183 : 0 : XRow_impl::getShort(
184 : : sal_Int32 columnIndex )
185 : : throw( sdbc::SQLException,
186 : : uno::RuntimeException)
187 : : {
188 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
189 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
190 : 0 : sal_Int16 Value( 0 );
191 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
192 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<sal_Int16>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
193 [ # # ]: 0 : return Value;
194 : : }
195 : :
196 : :
197 : : sal_Int32 SAL_CALL
198 : 0 : XRow_impl::getInt(
199 : : sal_Int32 columnIndex )
200 : : throw( sdbc::SQLException,
201 : : uno::RuntimeException)
202 : : {
203 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
204 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
205 : 0 : sal_Int32 Value( 0 );
206 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
207 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<sal_Int32>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
208 [ # # ]: 0 : return Value;
209 : : }
210 : :
211 : : sal_Int64 SAL_CALL
212 : 0 : XRow_impl::getLong(
213 : : sal_Int32 columnIndex )
214 : : throw( sdbc::SQLException,
215 : : uno::RuntimeException)
216 : : {
217 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
218 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
219 : 0 : sal_Int64 Value( 0 );
220 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
221 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<sal_Int64>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
222 [ # # ]: 0 : return Value;
223 : : }
224 : :
225 : : float SAL_CALL
226 : 0 : XRow_impl::getFloat(
227 : : sal_Int32 columnIndex )
228 : : throw( sdbc::SQLException,
229 : : uno::RuntimeException)
230 : : {
231 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
232 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
233 : 0 : float Value( 0 );
234 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
235 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<float>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
236 [ # # ]: 0 : return Value;
237 : : }
238 : :
239 : : double SAL_CALL
240 : 0 : XRow_impl::getDouble(
241 : : sal_Int32 columnIndex )
242 : : throw( sdbc::SQLException,
243 : : uno::RuntimeException)
244 : : {
245 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
246 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
247 : 0 : double Value( 0 );
248 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
249 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<double>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
250 [ # # ]: 0 : return Value;
251 : : }
252 : :
253 : : uno::Sequence< sal_Int8 > SAL_CALL
254 : 0 : XRow_impl::getBytes(
255 : : sal_Int32 columnIndex )
256 : : throw( sdbc::SQLException,
257 : : uno::RuntimeException)
258 : : {
259 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
260 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
261 [ # # ]: 0 : uno::Sequence< sal_Int8 > Value(0);
262 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
263 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<uno::Sequence< sal_Int8 > >( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
264 [ # # ]: 0 : return Value;
265 : : }
266 : :
267 : : util::Date SAL_CALL
268 : 0 : XRow_impl::getDate(
269 : : sal_Int32 columnIndex )
270 : : throw( sdbc::SQLException,
271 : : uno::RuntimeException)
272 : : {
273 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
274 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
275 : 0 : util::Date Value;
276 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
277 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<util::Date>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
278 [ # # ]: 0 : return Value;
279 : : }
280 : :
281 : : util::Time SAL_CALL
282 : 0 : XRow_impl::getTime(
283 : : sal_Int32 columnIndex )
284 : : throw( sdbc::SQLException,
285 : : uno::RuntimeException)
286 : : {
287 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
288 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
289 : 0 : util::Time Value;
290 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
291 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<util::Time>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
292 [ # # ]: 0 : return Value;
293 : : }
294 : :
295 : : util::DateTime SAL_CALL
296 : 0 : XRow_impl::getTimestamp(
297 : : sal_Int32 columnIndex )
298 : : throw( sdbc::SQLException,
299 : : uno::RuntimeException)
300 : : {
301 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
302 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
303 : 0 : util::DateTime Value;
304 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
305 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<util::DateTime>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
306 [ # # ]: 0 : return Value;
307 : : }
308 : :
309 : :
310 : : uno::Reference< io::XInputStream > SAL_CALL
311 : 0 : XRow_impl::getBinaryStream(
312 : : sal_Int32 columnIndex )
313 : : throw( sdbc::SQLException,
314 : : uno::RuntimeException)
315 : : {
316 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
317 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
318 : 0 : uno::Reference< io::XInputStream > Value;
319 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
320 [ # # ][ # # ]: 0 : m_nWasNull = ::convert<uno::Reference< io::XInputStream > >( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
321 [ # # ]: 0 : return Value;
322 : : }
323 : :
324 : :
325 : : uno::Reference< io::XInputStream > SAL_CALL
326 : 0 : XRow_impl::getCharacterStream(
327 : : sal_Int32 columnIndex )
328 : : throw( sdbc::SQLException,
329 : : uno::RuntimeException)
330 : : {
331 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
332 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
333 : 0 : uno::Reference< io::XInputStream > Value;
334 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
335 [ # # ][ # # ]: 0 : m_nWasNull = ::convert< uno::Reference< io::XInputStream> >( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
336 [ # # ]: 0 : return Value;
337 : : }
338 : :
339 : :
340 : : uno::Any SAL_CALL
341 : 56048 : XRow_impl::getObject(
342 : : sal_Int32 columnIndex,
343 : : const uno::Reference< container::XNameAccess >& )
344 : : throw( sdbc::SQLException,
345 : : uno::RuntimeException)
346 : : {
347 [ + - ][ - + ]: 56048 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ - + ]
348 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
349 : 56048 : uno::Any Value;
350 [ + - ]: 56048 : osl::MutexGuard aGuard( m_aMutex );
351 [ + - ][ + - ]: 56048 : m_nWasNull = ::convert<uno::Any>( m_pMyShell,m_xTypeConverter,m_aValueMap[ --columnIndex ],Value );
352 [ + - ]: 56048 : return Value;
353 : : }
354 : :
355 : : uno::Reference< sdbc::XRef > SAL_CALL
356 : 0 : XRow_impl::getRef(
357 : : sal_Int32 columnIndex )
358 : : throw( sdbc::SQLException,
359 : : uno::RuntimeException)
360 : : {
361 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
362 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
363 : 0 : uno::Reference< sdbc::XRef > Value;
364 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
365 : : m_nWasNull = ::convert<uno::Reference< sdbc::XRef> >( m_pMyShell,
366 : : m_xTypeConverter,
367 [ # # ]: 0 : m_aValueMap[ --columnIndex ],
368 [ # # ]: 0 : Value );
369 [ # # ]: 0 : return Value;
370 : : }
371 : :
372 : : uno::Reference< sdbc::XBlob > SAL_CALL
373 : 0 : XRow_impl::getBlob(
374 : : sal_Int32 columnIndex )
375 : : throw( sdbc::SQLException,
376 : : uno::RuntimeException)
377 : : {
378 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
379 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
380 : 0 : uno::Reference< sdbc::XBlob > Value;
381 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
382 : : m_nWasNull = ::convert<uno::Reference< sdbc::XBlob> >( m_pMyShell,
383 : : m_xTypeConverter,
384 [ # # ]: 0 : m_aValueMap[ --columnIndex ],
385 [ # # ]: 0 : Value );
386 [ # # ]: 0 : return Value;
387 : : }
388 : :
389 : : uno::Reference< sdbc::XClob > SAL_CALL
390 : 0 : XRow_impl::getClob(
391 : : sal_Int32 columnIndex )
392 : : throw( sdbc::SQLException,
393 : : uno::RuntimeException)
394 : : {
395 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
396 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
397 : 0 : uno::Reference< sdbc::XClob > Value;
398 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
399 : : m_nWasNull = ::convert<uno::Reference< sdbc::XClob> >( m_pMyShell,
400 : : m_xTypeConverter,
401 [ # # ]: 0 : m_aValueMap[ --columnIndex ],
402 [ # # ]: 0 : Value );
403 [ # # ]: 0 : return Value;
404 : : }
405 : :
406 : :
407 : : uno::Reference< sdbc::XArray > SAL_CALL
408 : 0 : XRow_impl::getArray(
409 : : sal_Int32 columnIndex )
410 : : throw( sdbc::SQLException,
411 : : uno::RuntimeException)
412 : : {
413 [ # # ][ # # ]: 0 : if( columnIndex < 1 || columnIndex > m_aValueMap.getLength() )
[ # # ]
414 [ # # ]: 0 : throw sdbc::SQLException( ::rtl::OUString( OSL_LOG_PREFIX ), uno::Reference< uno::XInterface >(), ::rtl::OUString(), 0, uno::Any() );
415 : 0 : uno::Reference< sdbc::XArray > Value;
416 [ # # ]: 0 : osl::MutexGuard aGuard( m_aMutex );
417 : : m_nWasNull = ::convert<uno::Reference< sdbc::XArray> >( m_pMyShell,
418 : : m_xTypeConverter,
419 [ # # ]: 0 : m_aValueMap[ --columnIndex ],
420 [ # # ]: 0 : Value );
421 [ # # ]: 0 : return Value;
422 : : }
423 : :
424 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|