LibreOffice Module ucb (master)  1
filrset.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #pragma once
20 
21 #include <vector>
22 #include <osl/file.hxx>
23 
25 #include <com/sun/star/ucb/XContentAccess.hpp>
26 #include <com/sun/star/sdbc/XCloseable.hpp>
27 #include <com/sun/star/beans/XPropertySet.hpp>
28 #include <com/sun/star/ucb/XDynamicResultSet.hpp>
29 #include <com/sun/star/ucb/XDynamicResultSetListener.hpp>
30 #include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
31 #include <com/sun/star/ucb/NumberedSortingInfo.hpp>
32 #include <com/sun/star/ucb/XContentIdentifier.hpp>
33 #include <com/sun/star/beans/Property.hpp>
34 #include "filrow.hxx"
35 #include <cppuhelper/implbase.hxx>
36 
37 namespace fileaccess {
38 
40  public cppu::WeakImplHelper< css::lang::XEventListener,
41  css::sdbc::XRow,
42  css::sdbc::XResultSet,
43  css::ucb::XDynamicResultSet,
44  css::sdbc::XCloseable,
45  css::sdbc::XResultSetMetaDataSupplier,
46  css::beans::XPropertySet,
47  css::ucb::XContentAccess >
48  {
49  public:
50 
51  XResultSet_impl( TaskManager* pMyShell,
52  const OUString& aUnqPath,
53  sal_Int32 OpenMode,
54  const css::uno::Sequence< css::beans::Property >& seq,
55  const css::uno::Sequence< css::ucb::NumberedSortingInfo >& seqSort );
56 
57  virtual ~XResultSet_impl() override;
58 
59  sal_Int32 CtorSuccess() { return m_nErrorCode;}
60  sal_Int32 getMinorError() const { return m_nMinorErrorCode;}
61 
62  // XEventListener
63  virtual void SAL_CALL
64  disposing( const css::lang::EventObject& Source ) override;
65 
66  // XComponent
67  virtual void SAL_CALL
68  dispose() override;
69 
70  virtual void SAL_CALL
72  const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
73 
74  virtual void SAL_CALL
75  removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
76 
77 
78  // XRow
79  virtual sal_Bool SAL_CALL
80  wasNull() override
81  {
82  if( 0<= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
83  m_nWasNull = m_aItems[m_nRow]->wasNull();
84  else
85  m_nWasNull = true;
86  return m_nWasNull;
87  }
88 
89  virtual OUString SAL_CALL
90  getString( sal_Int32 columnIndex ) override
91  {
92  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
93  return m_aItems[m_nRow]->getString( columnIndex );
94  else
95  return OUString();
96  }
97 
98  virtual sal_Bool SAL_CALL
99  getBoolean( sal_Int32 columnIndex ) override
100  {
101  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
102  return m_aItems[m_nRow]->getBoolean( columnIndex );
103  else
104  return false;
105  }
106 
107  virtual sal_Int8 SAL_CALL
108  getByte( sal_Int32 columnIndex ) override
109  {
110  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
111  return m_aItems[m_nRow]->getByte( columnIndex );
112  else
113  return sal_Int8( 0 );
114  }
115 
116  virtual sal_Int16 SAL_CALL
117  getShort( sal_Int32 columnIndex ) override
118  {
119  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
120  return m_aItems[m_nRow]->getShort( columnIndex );
121  else
122  return sal_Int16( 0 );
123  }
124 
125  virtual sal_Int32 SAL_CALL
126  getInt( sal_Int32 columnIndex ) override
127  {
128  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
129  return m_aItems[m_nRow]->getInt( columnIndex );
130  else
131  return 0;
132  }
133 
134  virtual sal_Int64 SAL_CALL
135  getLong( sal_Int32 columnIndex ) override
136  {
137  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
138  return m_aItems[m_nRow]->getLong( columnIndex );
139  else
140  return sal_Int64( 0 );
141  }
142 
143  virtual float SAL_CALL
144  getFloat( sal_Int32 columnIndex ) override
145  {
146  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
147  return m_aItems[m_nRow]->getFloat( columnIndex );
148  else
149  return float( 0 );
150  }
151 
152  virtual double SAL_CALL
153  getDouble( sal_Int32 columnIndex ) override
154  {
155  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
156  return m_aItems[m_nRow]->getDouble( columnIndex );
157  else
158  return double( 0 );
159  }
160 
161  virtual css::uno::Sequence< sal_Int8 > SAL_CALL
162  getBytes( sal_Int32 columnIndex ) override
163  {
164  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
165  return m_aItems[m_nRow]->getBytes( columnIndex );
166  else
167  return css::uno::Sequence< sal_Int8 >();
168  }
169 
170  virtual css::util::Date SAL_CALL
171  getDate( sal_Int32 columnIndex ) override
172  {
173  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
174  return m_aItems[m_nRow]->getDate( columnIndex );
175  else
176  return css::util::Date();
177  }
178 
179  virtual css::util::Time SAL_CALL
180  getTime( sal_Int32 columnIndex ) override
181  {
182  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
183  return m_aItems[m_nRow]->getTime( columnIndex );
184  else
185  return css::util::Time();
186  }
187 
188  virtual css::util::DateTime SAL_CALL
189  getTimestamp( sal_Int32 columnIndex ) override
190  {
191  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
192  return m_aItems[m_nRow]->getTimestamp( columnIndex );
193  else
194  return css::util::DateTime();
195  }
196 
197  virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
198  getBinaryStream( sal_Int32 columnIndex ) override
199  {
200  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
201  return m_aItems[m_nRow]->getBinaryStream( columnIndex );
202  else
203  return css::uno::Reference< css::io::XInputStream >();
204  }
205 
206  virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
207  getCharacterStream( sal_Int32 columnIndex ) override
208  {
209  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
210  return m_aItems[m_nRow]->getCharacterStream( columnIndex );
211  else
212  return css::uno::Reference< css::io::XInputStream >();
213  }
214 
215  virtual css::uno::Any SAL_CALL
216  getObject( sal_Int32 columnIndex,
217  const css::uno::Reference< css::container::XNameAccess >& typeMap ) override
218  {
219  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
220  return m_aItems[m_nRow]->getObject( columnIndex,typeMap );
221  else
222  return css::uno::Any();
223  }
224 
225  virtual css::uno::Reference< css::sdbc::XRef > SAL_CALL
226  getRef( sal_Int32 columnIndex ) override
227  {
228  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
229  return m_aItems[m_nRow]->getRef( columnIndex );
230  else
231  return css::uno::Reference< css::sdbc::XRef >();
232  }
233 
234  virtual css::uno::Reference< css::sdbc::XBlob > SAL_CALL
235  getBlob( sal_Int32 columnIndex ) override
236  {
237  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
238  return m_aItems[m_nRow]->getBlob( columnIndex );
239  else
240  return css::uno::Reference< css::sdbc::XBlob >();
241  }
242 
243  virtual css::uno::Reference< css::sdbc::XClob > SAL_CALL
244  getClob( sal_Int32 columnIndex ) override
245  {
246  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
247  return m_aItems[m_nRow]->getClob( columnIndex );
248  else
249  return css::uno::Reference< css::sdbc::XClob >();
250  }
251 
252  virtual css::uno::Reference< css::sdbc::XArray > SAL_CALL
253  getArray( sal_Int32 columnIndex ) override
254  {
255  if( 0 <= m_nRow && m_nRow < sal::static_int_cast<sal_Int32>(m_aItems.size()) )
256  return m_aItems[m_nRow]->getArray( columnIndex );
257  else
258  return css::uno::Reference< css::sdbc::XArray >();
259  }
260 
261 
262  // XResultSet
263 
264  virtual sal_Bool SAL_CALL
265  next() override;
266 
267  virtual sal_Bool SAL_CALL
268  isBeforeFirst() override;
269 
270  virtual sal_Bool SAL_CALL
271  isAfterLast() override;
272 
273  virtual sal_Bool SAL_CALL
274  isFirst() override;
275 
276  virtual sal_Bool SAL_CALL
277  isLast() override;
278 
279  virtual void SAL_CALL
280  beforeFirst() override;
281 
282  virtual void SAL_CALL
283  afterLast() override;
284 
285  virtual sal_Bool SAL_CALL
286  first() override;
287 
288  virtual sal_Bool SAL_CALL
289  last() override;
290 
291  virtual sal_Int32 SAL_CALL
292  getRow() override;
293 
294  virtual sal_Bool SAL_CALL
295  absolute( sal_Int32 row ) override;
296 
297  virtual sal_Bool SAL_CALL
298  relative( sal_Int32 rows ) override;
299 
300  virtual sal_Bool SAL_CALL
301  previous() override;
302 
303  virtual void SAL_CALL
304  refreshRow() override;
305 
306  virtual sal_Bool SAL_CALL
307  rowUpdated() override;
308 
309  virtual sal_Bool SAL_CALL
310  rowInserted() override;
311 
312  virtual sal_Bool SAL_CALL
313  rowDeleted() override;
314 
315 
316  virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
317  getStatement() override;
318 
319 
320  // XDynamicResultSet
321 
322  virtual css::uno::Reference< css::sdbc::XResultSet > SAL_CALL
323  getStaticResultSet() override;
324 
325  virtual void SAL_CALL
326  setListener(
327  const css::uno::Reference<
328  css::ucb::XDynamicResultSetListener >& Listener ) override;
329 
330  virtual void SAL_CALL
331  connectToCache( const css::uno::Reference< css::ucb::XDynamicResultSet > & xCache ) override;
332 
333  virtual sal_Int16 SAL_CALL
334  getCapabilities() override;
335 
336 
337  // XCloseable
338 
339  virtual void SAL_CALL
340  close() override;
341 
342  // XContentAccess
343 
344  virtual OUString SAL_CALL
345  queryContentIdentifierString() override;
346 
347  virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL
348  queryContentIdentifier() override;
349 
350  virtual css::uno::Reference< css::ucb::XContent > SAL_CALL
351  queryContent() override;
352 
353  // XResultSetMetaDataSupplier
354  virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL
355  getMetaData() override;
356 
357 
358  // XPropertySet
359  virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL
360  getPropertySetInfo() override;
361 
362  virtual void SAL_CALL setPropertyValue(
363  const OUString& aPropertyName,
364  const css::uno::Any& aValue ) override;
365 
366  virtual css::uno::Any SAL_CALL
368  const OUString& PropertyName ) override;
369 
370  virtual void SAL_CALL
372  const OUString& aPropertyName,
373  const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
374 
375  virtual void SAL_CALL
377  const OUString& aPropertyName,
378  const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
379 
380  virtual void SAL_CALL
382  const OUString& PropertyName,
383  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
384 
385  virtual void SAL_CALL removeVetoableChangeListener(
386  const OUString& PropertyName,
387  const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
388 
389  private:
390 
392  bool m_nIsOpen;
393  sal_Int32 m_nRow;
395  sal_Int32 m_nOpenMode;
397 
398  typedef std::vector< css::uno::Reference< css::ucb::XContentIdentifier > > IdentSet;
399  typedef std::vector< css::uno::Reference< css::sdbc::XRow > > ItemSet;
400 
401  IdentSet m_aIdents;
402  ItemSet m_aItems;
403  std::vector< OUString > m_aUnqPath;
404  const OUString m_aBaseDirectory;
405 
406  osl::Directory m_aFolder;
407  css::uno::Sequence< css::beans::Property > m_sProperty;
408  css::uno::Sequence< css::ucb::NumberedSortingInfo > m_sSortingInfo;
409 
410  osl::Mutex m_aMutex;
412  std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pDisposeEventListeners;
413  std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pRowCountListeners;
414  std::unique_ptr<comphelper::OInterfaceContainerHelper2> m_pIsFinalListeners;
415 
416  css::uno::Reference< css::ucb::XDynamicResultSetListener > m_xListener;
417 
418  sal_Int32 m_nErrorCode;
419  sal_Int32 m_nMinorErrorCode;
420 
421  // Methods
424  bool OneMore();
425 
426  void rowCountChanged();
427  void isFinalChanged();
428  };
429 
430 
431 } // end namespace fileaccess
432 
433 
434 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual float SAL_CALL getFloat(sal_Int32 columnIndex) override
Definition: filrset.hxx:144
virtual OUString SAL_CALL queryContentIdentifierString() override
Definition: filrset.cxx:455
virtual sal_Bool SAL_CALL rowDeleted() override
Definition: filrset.cxx:426
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getCharacterStream(sal_Int32 columnIndex) override
Definition: filrset.hxx:207
virtual sal_Bool SAL_CALL first() override
Definition: filrset.cxx:332
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: filrset.cxx:633
css::uno::Reference< css::ucb::XDynamicResultSetListener > m_xListener
Definition: filrset.hxx:416
signed char sal_Int8
virtual sal_Bool SAL_CALL rowUpdated() override
Definition: filrset.cxx:414
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: filrset.cxx:660
virtual css::uno::Reference< css::sdbc::XResultSetMetaData > SAL_CALL getMetaData() override
Definition: filrset.cxx:591
virtual void SAL_CALL close() override
Definition: filrset.cxx:442
virtual sal_Int32 SAL_CALL getRow() override
Definition: filrset.cxx:350
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getStatement() override
Definition: filrset.cxx:433
virtual css::uno::Reference< css::ucb::XContent > SAL_CALL queryContent() override
Definition: filrset.cxx:483
virtual css::uno::Reference< css::sdbc::XResultSet > SAL_CALL getStaticResultSet() override
Definition: filrset.cxx:497
virtual css::util::Time SAL_CALL getTime(sal_Int32 columnIndex) override
Definition: filrset.hxx:180
virtual sal_Bool SAL_CALL getBoolean(sal_Int32 columnIndex) override
Definition: filrset.hxx:99
virtual sal_Int16 SAL_CALL getCapabilities() override
Definition: filrset.cxx:582
virtual double SAL_CALL getDouble(sal_Int32 columnIndex) override
Definition: filrset.hxx:153
virtual css::uno::Reference< css::ucb::XContentIdentifier > SAL_CALL queryContentIdentifier() override
Definition: filrset.cxx:468
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
Definition: filrset.cxx:89
std::vector< css::uno::Reference< css::ucb::XContentIdentifier > > IdentSet
Definition: filrset.hxx:398
virtual css::util::DateTime SAL_CALL getTimestamp(sal_Int32 columnIndex) override
Definition: filrset.hxx:189
XResultSet_impl(TaskManager *pMyShell, const OUString &aUnqPath, sal_Int32 OpenMode, const css::uno::Sequence< css::beans::Property > &seq, const css::uno::Sequence< css::ucb::NumberedSortingInfo > &seqSort)
Definition: filrset.cxx:50
virtual sal_Bool SAL_CALL next() override
Definition: filrset.cxx:274
osl::Directory m_aFolder
Definition: filrset.hxx:406
virtual sal_Bool SAL_CALL isLast() override
Definition: filrset.cxx:306
std::unique_ptr< comphelper::OInterfaceContainerHelper2 > m_pIsFinalListeners
Definition: filrset.hxx:414
virtual sal_Int64 SAL_CALL getLong(sal_Int32 columnIndex) override
Definition: filrset.hxx:135
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBytes(sal_Int32 columnIndex) override
Definition: filrset.hxx:162
css::uno::Sequence< css::ucb::NumberedSortingInfo > m_sSortingInfo
Definition: filrset.hxx:408
virtual sal_Int8 SAL_CALL getByte(sal_Int32 columnIndex) override
Definition: filrset.hxx:108
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
Definition: filrset.cxx:96
virtual void SAL_CALL dispose() override
Definition: filrset.cxx:121
virtual void SAL_CALL setListener(const css::uno::Reference< css::ucb::XDynamicResultSetListener > &Listener) override
Definition: filrset.cxx:510
std::unique_ptr< comphelper::OInterfaceContainerHelper2 > m_pRowCountListeners
Definition: filrset.hxx:413
virtual css::uno::Reference< css::sdbc::XBlob > SAL_CALL getBlob(sal_Int32 columnIndex) override
Definition: filrset.hxx:235
virtual void SAL_CALL beforeFirst() override
Definition: filrset.cxx:316
std::vector< css::uno::Reference< css::sdbc::XRow > > ItemSet
Definition: filrset.hxx:399
sal_Int32 getMinorError() const
Definition: filrset.hxx:60
virtual sal_Bool SAL_CALL isBeforeFirst() override
Definition: filrset.cxx:285
unsigned char sal_Bool
TaskManager * m_pMyShell
Definition: filrset.hxx:391
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: filrset.cxx:714
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: filrset.cxx:615
virtual css::uno::Any SAL_CALL getObject(sal_Int32 columnIndex, const css::uno::Reference< css::container::XNameAccess > &typeMap) override
Definition: filrset.hxx:216
virtual ~XResultSet_impl() override
Definition: filrset.cxx:81
virtual OUString SAL_CALL getString(sal_Int32 columnIndex) override
Definition: filrset.hxx:90
virtual sal_Bool SAL_CALL previous() override
Definition: filrset.cxx:396
virtual css::uno::Reference< css::sdbc::XClob > SAL_CALL getClob(sal_Int32 columnIndex) override
Definition: filrset.hxx:244
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
Definition: filrset.cxx:110
virtual void SAL_CALL connectToCache(const css::uno::Reference< css::ucb::XDynamicResultSet > &xCache) override
Definition: filrset.cxx:548
virtual void SAL_CALL afterLast() override
Definition: filrset.cxx:323
const OUString m_aBaseDirectory
Definition: filrset.hxx:404
virtual void SAL_CALL refreshRow() override
Definition: filrset.cxx:407
virtual sal_Bool SAL_CALL relative(sal_Int32 rows) override
Definition: filrset.cxx:382
virtual sal_Bool SAL_CALL isAfterLast() override
Definition: filrset.cxx:292
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: filrset.cxx:686
virtual sal_Bool SAL_CALL wasNull() override
Definition: filrset.hxx:80
virtual sal_Bool SAL_CALL last() override
Definition: filrset.cxx:340
virtual sal_Int16 SAL_CALL getShort(sal_Int32 columnIndex) override
Definition: filrset.hxx:117
std::vector< OUString > m_aUnqPath
Definition: filrset.hxx:403
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getBinaryStream(sal_Int32 columnIndex) override
Definition: filrset.hxx:198
css::uno::Sequence< css::beans::Property > m_sProperty
Definition: filrset.hxx:407
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: filrset.cxx:707
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: filrset.cxx:643
virtual sal_Bool SAL_CALL isFirst() override
Definition: filrset.cxx:299
virtual css::uno::Reference< css::sdbc::XRef > SAL_CALL getRef(sal_Int32 columnIndex) override
Definition: filrset.hxx:226
virtual sal_Bool SAL_CALL rowInserted() override
Definition: filrset.cxx:420
std::unique_ptr< comphelper::OInterfaceContainerHelper2 > m_pDisposeEventListeners
Definition: filrset.hxx:412
osl::Mutex m_aEventListenerMutex
Definition: filrset.hxx:411
virtual sal_Int32 SAL_CALL getInt(sal_Int32 columnIndex) override
Definition: filrset.hxx:126
virtual sal_Bool SAL_CALL absolute(sal_Int32 row) override
Definition: filrset.cxx:360
virtual css::util::Date SAL_CALL getDate(sal_Int32 columnIndex) override
Definition: filrset.hxx:171
virtual css::uno::Reference< css::sdbc::XArray > SAL_CALL getArray(sal_Int32 columnIndex) override
Definition: filrset.hxx:253