1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_connectivity.hxx"
26*b1cdbd2cSJim Jagielski #include "NDatabaseMetaData.hxx"
27*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/DataType.hpp>
28*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ResultSetType.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/TransactionIsolation.hpp>
31*b1cdbd2cSJim Jagielski #include <connectivity/dbexception.hxx>
32*b1cdbd2cSJim Jagielski #include <connectivity/FValue.hxx>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ColumnValue.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ColumnSearch.hpp>
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski #include <vector>
37*b1cdbd2cSJim Jagielski #include <string.h>
38*b1cdbd2cSJim Jagielski #include "EApi.h"
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski #if OSL_DEBUG_LEVEL > 0
41*b1cdbd2cSJim Jagielski # define OUtoCStr( x ) ( ::rtl::OUStringToOString ( (x), RTL_TEXTENCODING_ASCII_US).getStr())
42*b1cdbd2cSJim Jagielski #else /* OSL_DEBUG_LEVEL */
43*b1cdbd2cSJim Jagielski # define OUtoCStr( x ) ("dummy")
44*b1cdbd2cSJim Jagielski #endif /* OSL_DEBUG_LEVEL */
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski using namespace connectivity::evoab;
47*b1cdbd2cSJim Jagielski using namespace connectivity;
48*b1cdbd2cSJim Jagielski using namespace com::sun::star::uno;
49*b1cdbd2cSJim Jagielski using namespace com::sun::star::lang;
50*b1cdbd2cSJim Jagielski using namespace com::sun::star::beans;
51*b1cdbd2cSJim Jagielski using namespace com::sun::star::sdbc;
52*b1cdbd2cSJim Jagielski using namespace com::sun::star::sdbcx;
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski
55*b1cdbd2cSJim Jagielski namespace connectivity
56*b1cdbd2cSJim Jagielski {
57*b1cdbd2cSJim Jagielski namespace evoab
58*b1cdbd2cSJim Jagielski {
59*b1cdbd2cSJim Jagielski static sal_Int32 const s_nCOLUMN_SIZE = 256;
60*b1cdbd2cSJim Jagielski static sal_Int32 const s_nDECIMAL_DIGITS = 0;
61*b1cdbd2cSJim Jagielski static sal_Int32 const s_nNULLABLE = 1;
62*b1cdbd2cSJim Jagielski static sal_Int32 const s_nCHAR_OCTET_LENGTH = 65535;
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim Jagielski static ColumnProperty **pFields=NULL;
65*b1cdbd2cSJim Jagielski static guint nFields = 0;
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski static const char *pBlackList[] =
68*b1cdbd2cSJim Jagielski {
69*b1cdbd2cSJim Jagielski "id",
70*b1cdbd2cSJim Jagielski "list-show-addresses",
71*b1cdbd2cSJim Jagielski "address-label-home",
72*b1cdbd2cSJim Jagielski "address-label-work",
73*b1cdbd2cSJim Jagielski "address-label-other"
74*b1cdbd2cSJim Jagielski };
75*b1cdbd2cSJim Jagielski
get_evo_addr()76*b1cdbd2cSJim Jagielski const SplitEvoColumns* get_evo_addr()
77*b1cdbd2cSJim Jagielski {
78*b1cdbd2cSJim Jagielski static const SplitEvoColumns evo_addr[] = {
79*b1cdbd2cSJim Jagielski {"addr-line1",DEFAULT_ADDR_LINE1},{"addr-line2",DEFAULT_ADDR_LINE2},{"city",DEFAULT_CITY},{"state",DEFAULT_STATE},{"country",DEFAULT_COUNTRY},{"zip",DEFAULT_ZIP},
80*b1cdbd2cSJim Jagielski {"work-addr-line1",WORK_ADDR_LINE1},{"work-addr-line2",WORK_ADDR_LINE2},{"work-city",WORK_CITY},{"work-state",WORK_STATE},{"work-country",WORK_COUNTRY},{"work-zip",WORK_ZIP},
81*b1cdbd2cSJim Jagielski {"home-addr-line1",HOME_ADDR_LINE1},{"home-addr-line2",HOME_ADDR_LINE2},{"home-addr-City",HOME_CITY},{"home-state",HOME_STATE},{"home-country",HOME_COUNTRY},{"home-zip",HOME_ZIP},
82*b1cdbd2cSJim Jagielski {"other-addr-line1",OTHER_ADDR_LINE1},{"other-addr-line2",OTHER_ADDR_LINE2},{"other-addr-city",OTHER_CITY},{"other-addr-state",OTHER_STATE},{"other-addr-country",OTHER_COUNTRY},{"other-addr-zip",OTHER_ZIP}
83*b1cdbd2cSJim Jagielski };
84*b1cdbd2cSJim Jagielski return evo_addr;
85*b1cdbd2cSJim Jagielski }
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski static void
splitColumn(ColumnProperty ** pToBeFields)88*b1cdbd2cSJim Jagielski splitColumn (ColumnProperty **pToBeFields)
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski const SplitEvoColumns* evo_addr( get_evo_addr() );
91*b1cdbd2cSJim Jagielski for (int i = 0; i < OTHER_ZIP; i++)
92*b1cdbd2cSJim Jagielski {
93*b1cdbd2cSJim Jagielski pToBeFields[nFields] = g_new0(ColumnProperty,1);
94*b1cdbd2cSJim Jagielski pToBeFields[nFields]->bIsSplittedValue = true;
95*b1cdbd2cSJim Jagielski pToBeFields[nFields]->pField = g_param_spec_ref(g_param_spec_string (evo_addr[i].pColumnName,evo_addr[i].pColumnName,"",NULL,G_PARAM_WRITABLE));
96*b1cdbd2cSJim Jagielski nFields++;
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski }
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim Jagielski static void
initFields()101*b1cdbd2cSJim Jagielski initFields()
102*b1cdbd2cSJim Jagielski {
103*b1cdbd2cSJim Jagielski if( !pFields )
104*b1cdbd2cSJim Jagielski {
105*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
106*b1cdbd2cSJim Jagielski if( !pFields )
107*b1cdbd2cSJim Jagielski {
108*b1cdbd2cSJim Jagielski guint nProps;
109*b1cdbd2cSJim Jagielski ColumnProperty **pToBeFields;
110*b1cdbd2cSJim Jagielski GParamSpec **pProps;
111*b1cdbd2cSJim Jagielski nFields = 0;
112*b1cdbd2cSJim Jagielski pProps = g_object_class_list_properties
113*b1cdbd2cSJim Jagielski ( (GObjectClass *) g_type_class_ref( E_TYPE_CONTACT ),
114*b1cdbd2cSJim Jagielski &nProps );
115*b1cdbd2cSJim Jagielski pToBeFields = g_new0(ColumnProperty *, (nProps + OTHER_ZIP)/* new column(s)*/ );
116*b1cdbd2cSJim Jagielski for ( guint i = 0; i < nProps; i++ )
117*b1cdbd2cSJim Jagielski {
118*b1cdbd2cSJim Jagielski switch (pProps[i]->value_type)
119*b1cdbd2cSJim Jagielski {
120*b1cdbd2cSJim Jagielski case G_TYPE_STRING:
121*b1cdbd2cSJim Jagielski case G_TYPE_BOOLEAN:
122*b1cdbd2cSJim Jagielski {
123*b1cdbd2cSJim Jagielski bool bAdd = true;
124*b1cdbd2cSJim Jagielski const char *pName = g_param_spec_get_name( pProps[i] );
125*b1cdbd2cSJim Jagielski for (unsigned int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
126*b1cdbd2cSJim Jagielski {
127*b1cdbd2cSJim Jagielski if( !strcmp( pBlackList[j], pName ) )
128*b1cdbd2cSJim Jagielski {
129*b1cdbd2cSJim Jagielski bAdd = false;
130*b1cdbd2cSJim Jagielski break;
131*b1cdbd2cSJim Jagielski }
132*b1cdbd2cSJim Jagielski }
133*b1cdbd2cSJim Jagielski if( bAdd )
134*b1cdbd2cSJim Jagielski {
135*b1cdbd2cSJim Jagielski pToBeFields[nFields]= g_new0(ColumnProperty,1);
136*b1cdbd2cSJim Jagielski pToBeFields[nFields]->bIsSplittedValue=false;
137*b1cdbd2cSJim Jagielski pToBeFields[ nFields++ ]->pField = g_param_spec_ref( pProps[i] );
138*b1cdbd2cSJim Jagielski }
139*b1cdbd2cSJim Jagielski break;
140*b1cdbd2cSJim Jagielski }
141*b1cdbd2cSJim Jagielski default:
142*b1cdbd2cSJim Jagielski break;
143*b1cdbd2cSJim Jagielski }
144*b1cdbd2cSJim Jagielski }
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski splitColumn(pToBeFields);
147*b1cdbd2cSJim Jagielski pFields = pToBeFields;
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski }
150*b1cdbd2cSJim Jagielski }
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski
153*b1cdbd2cSJim Jagielski guint
getFieldCount()154*b1cdbd2cSJim Jagielski getFieldCount()
155*b1cdbd2cSJim Jagielski {
156*b1cdbd2cSJim Jagielski initFields();
157*b1cdbd2cSJim Jagielski return nFields;
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski
160*b1cdbd2cSJim Jagielski const ColumnProperty *
getField(guint n)161*b1cdbd2cSJim Jagielski getField(guint n)
162*b1cdbd2cSJim Jagielski {
163*b1cdbd2cSJim Jagielski initFields();
164*b1cdbd2cSJim Jagielski if( n < nFields )
165*b1cdbd2cSJim Jagielski return pFields[n];
166*b1cdbd2cSJim Jagielski else
167*b1cdbd2cSJim Jagielski return NULL;
168*b1cdbd2cSJim Jagielski }
169*b1cdbd2cSJim Jagielski
170*b1cdbd2cSJim Jagielski GType
getGFieldType(guint nCol)171*b1cdbd2cSJim Jagielski getGFieldType( guint nCol )
172*b1cdbd2cSJim Jagielski {
173*b1cdbd2cSJim Jagielski initFields();
174*b1cdbd2cSJim Jagielski
175*b1cdbd2cSJim Jagielski sal_Int32 nType = G_TYPE_STRING;
176*b1cdbd2cSJim Jagielski if ( nCol < nFields )
177*b1cdbd2cSJim Jagielski return ((GParamSpec *)pFields[nCol]->pField)->value_type;
178*b1cdbd2cSJim Jagielski return nType;
179*b1cdbd2cSJim Jagielski }
180*b1cdbd2cSJim Jagielski
181*b1cdbd2cSJim Jagielski sal_Int32
getFieldType(guint nCol)182*b1cdbd2cSJim Jagielski getFieldType( guint nCol )
183*b1cdbd2cSJim Jagielski {
184*b1cdbd2cSJim Jagielski sal_Int32 nType = getGFieldType( nCol );
185*b1cdbd2cSJim Jagielski return nType == G_TYPE_STRING ? DataType::VARCHAR : DataType::BIT;
186*b1cdbd2cSJim Jagielski }
187*b1cdbd2cSJim Jagielski
findEvoabField(const rtl::OUString & aColName)188*b1cdbd2cSJim Jagielski guint findEvoabField(const rtl::OUString& aColName)
189*b1cdbd2cSJim Jagielski {
190*b1cdbd2cSJim Jagielski guint nRet = (guint)-1;
191*b1cdbd2cSJim Jagielski sal_Bool bFound = sal_False;
192*b1cdbd2cSJim Jagielski initFields();
193*b1cdbd2cSJim Jagielski for (guint i=0;(i < nFields) && !bFound;i++)
194*b1cdbd2cSJim Jagielski {
195*b1cdbd2cSJim Jagielski rtl::OUString aName = getFieldName(i);
196*b1cdbd2cSJim Jagielski if (aName == aColName)
197*b1cdbd2cSJim Jagielski {
198*b1cdbd2cSJim Jagielski nRet = i;
199*b1cdbd2cSJim Jagielski bFound = sal_True;
200*b1cdbd2cSJim Jagielski }
201*b1cdbd2cSJim Jagielski }
202*b1cdbd2cSJim Jagielski return nRet;
203*b1cdbd2cSJim Jagielski }
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielski rtl::OUString
getFieldTypeName(guint nCol)206*b1cdbd2cSJim Jagielski getFieldTypeName( guint nCol )
207*b1cdbd2cSJim Jagielski {
208*b1cdbd2cSJim Jagielski switch( getFieldType( nCol ) )
209*b1cdbd2cSJim Jagielski {
210*b1cdbd2cSJim Jagielski case DataType::BIT:
211*b1cdbd2cSJim Jagielski return ::rtl::OUString::createFromAscii( "BIT" );
212*b1cdbd2cSJim Jagielski case DataType::VARCHAR:
213*b1cdbd2cSJim Jagielski return ::rtl::OUString::createFromAscii( "VARCHAR" );
214*b1cdbd2cSJim Jagielski default:
215*b1cdbd2cSJim Jagielski break;
216*b1cdbd2cSJim Jagielski }
217*b1cdbd2cSJim Jagielski return ::rtl::OUString();
218*b1cdbd2cSJim Jagielski }
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski rtl::OUString
getFieldName(guint nCol)221*b1cdbd2cSJim Jagielski getFieldName( guint nCol )
222*b1cdbd2cSJim Jagielski {
223*b1cdbd2cSJim Jagielski const GParamSpec *pSpec = getField( nCol )->pField;
224*b1cdbd2cSJim Jagielski rtl::OUString aName;
225*b1cdbd2cSJim Jagielski initFields();
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielski if( pSpec )
228*b1cdbd2cSJim Jagielski aName = rtl::OStringToOUString( g_param_spec_get_name( ( GParamSpec * )pSpec ),
229*b1cdbd2cSJim Jagielski RTL_TEXTENCODING_UTF8 );
230*b1cdbd2cSJim Jagielski aName = aName.replace( '-', '_' );
231*b1cdbd2cSJim Jagielski return aName;
232*b1cdbd2cSJim Jagielski }
233*b1cdbd2cSJim Jagielski
234*b1cdbd2cSJim Jagielski void
free_column_resources()235*b1cdbd2cSJim Jagielski free_column_resources()
236*b1cdbd2cSJim Jagielski {
237*b1cdbd2cSJim Jagielski for (int i=nFields-1;i > 0;i--)
238*b1cdbd2cSJim Jagielski {
239*b1cdbd2cSJim Jagielski if (pFields && pFields[i] )
240*b1cdbd2cSJim Jagielski {
241*b1cdbd2cSJim Jagielski if (pFields[i]->pField)
242*b1cdbd2cSJim Jagielski g_param_spec_unref(pFields[i]->pField);
243*b1cdbd2cSJim Jagielski g_free(pFields[i]);
244*b1cdbd2cSJim Jagielski }
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski if(pFields)
247*b1cdbd2cSJim Jagielski {
248*b1cdbd2cSJim Jagielski g_free(pFields);
249*b1cdbd2cSJim Jagielski pFields=NULL;
250*b1cdbd2cSJim Jagielski }
251*b1cdbd2cSJim Jagielski
252*b1cdbd2cSJim Jagielski }
253*b1cdbd2cSJim Jagielski
254*b1cdbd2cSJim Jagielski
255*b1cdbd2cSJim Jagielski }
256*b1cdbd2cSJim Jagielski }
257*b1cdbd2cSJim Jagielski
258*b1cdbd2cSJim Jagielski
OEvoabDatabaseMetaData(OEvoabConnection * _pCon)259*b1cdbd2cSJim Jagielski OEvoabDatabaseMetaData::OEvoabDatabaseMetaData(OEvoabConnection* _pCon)
260*b1cdbd2cSJim Jagielski : ::connectivity::ODatabaseMetaDataBase(_pCon, _pCon->getConnectionInfo())
261*b1cdbd2cSJim Jagielski ,m_pConnection(_pCon)
262*b1cdbd2cSJim Jagielski {
263*b1cdbd2cSJim Jagielski OSL_ENSURE(m_pConnection,"OEvoabDatabaseMetaData::OEvoabDatabaseMetaData: No connection set!");
264*b1cdbd2cSJim Jagielski }
~OEvoabDatabaseMetaData()265*b1cdbd2cSJim Jagielski OEvoabDatabaseMetaData::~OEvoabDatabaseMetaData()
266*b1cdbd2cSJim Jagielski {
267*b1cdbd2cSJim Jagielski }
268*b1cdbd2cSJim Jagielski
269*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumnRows(const::rtl::OUString & columnNamePattern)270*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORows& OEvoabDatabaseMetaData::getColumnRows( const ::rtl::OUString& columnNamePattern )
271*b1cdbd2cSJim Jagielski {
272*b1cdbd2cSJim Jagielski static ODatabaseMetaDataResultSet::ORows aRows;
273*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORow aRow(19);
274*b1cdbd2cSJim Jagielski aRows.clear();
275*b1cdbd2cSJim Jagielski
276*b1cdbd2cSJim Jagielski // ****************************************************
277*b1cdbd2cSJim Jagielski // Some entries in a row never change, so set them now
278*b1cdbd2cSJim Jagielski // ****************************************************
279*b1cdbd2cSJim Jagielski
280*b1cdbd2cSJim Jagielski // Catalog
281*b1cdbd2cSJim Jagielski aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii(""));
282*b1cdbd2cSJim Jagielski // Schema
283*b1cdbd2cSJim Jagielski aRow[2] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii(""));
284*b1cdbd2cSJim Jagielski // COLUMN_SIZE
285*b1cdbd2cSJim Jagielski aRow[7] = new ORowSetValueDecorator(s_nCOLUMN_SIZE);
286*b1cdbd2cSJim Jagielski // BUFFER_LENGTH, not used
287*b1cdbd2cSJim Jagielski aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
288*b1cdbd2cSJim Jagielski // DECIMAL_DIGITS.
289*b1cdbd2cSJim Jagielski aRow[9] = new ORowSetValueDecorator(s_nDECIMAL_DIGITS);
290*b1cdbd2cSJim Jagielski // NUM_PREC_RADIX
291*b1cdbd2cSJim Jagielski aRow[10] = new ORowSetValueDecorator((sal_Int32)10);
292*b1cdbd2cSJim Jagielski // NULLABLE
293*b1cdbd2cSJim Jagielski aRow[11] = new ORowSetValueDecorator(s_nNULLABLE);
294*b1cdbd2cSJim Jagielski // REMARKS
295*b1cdbd2cSJim Jagielski aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue();
296*b1cdbd2cSJim Jagielski // COULUMN_DEF, not used
297*b1cdbd2cSJim Jagielski aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
298*b1cdbd2cSJim Jagielski // SQL_DATA_TYPE, not used
299*b1cdbd2cSJim Jagielski aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue();
300*b1cdbd2cSJim Jagielski // SQL_DATETIME_SUB, not used
301*b1cdbd2cSJim Jagielski aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue();
302*b1cdbd2cSJim Jagielski // CHAR_OCTET_LENGTH, refer to [5]
303*b1cdbd2cSJim Jagielski aRow[16] = new ORowSetValueDecorator(s_nCHAR_OCTET_LENGTH);
304*b1cdbd2cSJim Jagielski // IS_NULLABLE
305*b1cdbd2cSJim Jagielski aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii( "YES" ));
306*b1cdbd2cSJim Jagielski
307*b1cdbd2cSJim Jagielski
308*b1cdbd2cSJim Jagielski aRow[3] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii( "TABLE" ));
309*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( m_aMutex );
310*b1cdbd2cSJim Jagielski
311*b1cdbd2cSJim Jagielski initFields();
312*b1cdbd2cSJim Jagielski for (sal_Int32 i = 0; i < (sal_Int32) nFields; i++)
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski if( match( columnNamePattern, getFieldName( i ), '\0' ) )
315*b1cdbd2cSJim Jagielski {
316*b1cdbd2cSJim Jagielski aRow[5] = new ORowSetValueDecorator( static_cast<sal_Int16>( getFieldType( i ) ) );
317*b1cdbd2cSJim Jagielski aRow[6] = new ORowSetValueDecorator( getFieldTypeName( i ) );
318*b1cdbd2cSJim Jagielski
319*b1cdbd2cSJim Jagielski OSL_TRACE( "ColumnName = '%s'", g_param_spec_get_name( pFields[i]->pField ) );
320*b1cdbd2cSJim Jagielski // COLUMN_NAME
321*b1cdbd2cSJim Jagielski aRow[4] = new ORowSetValueDecorator( getFieldName( i ) );
322*b1cdbd2cSJim Jagielski // ORDINAL_POSITION
323*b1cdbd2cSJim Jagielski aRow[17] = new ORowSetValueDecorator( i );
324*b1cdbd2cSJim Jagielski aRows.push_back( aRow );
325*b1cdbd2cSJim Jagielski }
326*b1cdbd2cSJim Jagielski }
327*b1cdbd2cSJim Jagielski
328*b1cdbd2cSJim Jagielski return aRows ;
329*b1cdbd2cSJim Jagielski }
330*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_getCatalogSeparator_throw()331*b1cdbd2cSJim Jagielski ::rtl::OUString OEvoabDatabaseMetaData::impl_getCatalogSeparator_throw( )
332*b1cdbd2cSJim Jagielski {
333*b1cdbd2cSJim Jagielski return ::rtl::OUString();
334*b1cdbd2cSJim Jagielski }
335*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxBinaryLiteralLength()336*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException)
337*b1cdbd2cSJim Jagielski {
338*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxRowSize()341*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException)
342*b1cdbd2cSJim Jagielski {
343*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
344*b1cdbd2cSJim Jagielski }
345*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCatalogNameLength()346*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException)
347*b1cdbd2cSJim Jagielski {
348*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
349*b1cdbd2cSJim Jagielski }
350*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCharLiteralLength()351*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException)
352*b1cdbd2cSJim Jagielski {
353*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
354*b1cdbd2cSJim Jagielski }
355*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnNameLength()356*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException)
357*b1cdbd2cSJim Jagielski {
358*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
359*b1cdbd2cSJim Jagielski }
360*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInIndex()361*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException)
362*b1cdbd2cSJim Jagielski {
363*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
364*b1cdbd2cSJim Jagielski }
365*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCursorNameLength()366*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException)
367*b1cdbd2cSJim Jagielski {
368*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
369*b1cdbd2cSJim Jagielski }
370*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxConnections()371*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException)
372*b1cdbd2cSJim Jagielski {
373*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
374*b1cdbd2cSJim Jagielski }
375*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInTable()376*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException)
377*b1cdbd2cSJim Jagielski {
378*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
379*b1cdbd2cSJim Jagielski }
380*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_getMaxStatements_throw()381*b1cdbd2cSJim Jagielski sal_Int32 OEvoabDatabaseMetaData::impl_getMaxStatements_throw( )
382*b1cdbd2cSJim Jagielski {
383*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
384*b1cdbd2cSJim Jagielski }
385*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxTableNameLength()386*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException)
387*b1cdbd2cSJim Jagielski {
388*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
389*b1cdbd2cSJim Jagielski }
390*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_getMaxTablesInSelect_throw()391*b1cdbd2cSJim Jagielski sal_Int32 OEvoabDatabaseMetaData::impl_getMaxTablesInSelect_throw( )
392*b1cdbd2cSJim Jagielski {
393*b1cdbd2cSJim Jagielski // We only support a single table
394*b1cdbd2cSJim Jagielski return 1;
395*b1cdbd2cSJim Jagielski }
396*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
397*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
doesMaxRowSizeIncludeBlobs()398*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException)
399*b1cdbd2cSJim Jagielski {
400*b1cdbd2cSJim Jagielski return sal_False;
401*b1cdbd2cSJim Jagielski }
402*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseQuotedIdentifiers()403*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
404*b1cdbd2cSJim Jagielski {
405*b1cdbd2cSJim Jagielski return sal_False;
406*b1cdbd2cSJim Jagielski }
407*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseIdentifiers()408*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException)
409*b1cdbd2cSJim Jagielski {
410*b1cdbd2cSJim Jagielski return sal_False;
411*b1cdbd2cSJim Jagielski }
412*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_storesMixedCaseQuotedIdentifiers_throw()413*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_storesMixedCaseQuotedIdentifiers_throw( )
414*b1cdbd2cSJim Jagielski {
415*b1cdbd2cSJim Jagielski return sal_False;
416*b1cdbd2cSJim Jagielski }
417*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesMixedCaseIdentifiers()418*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException)
419*b1cdbd2cSJim Jagielski {
420*b1cdbd2cSJim Jagielski return sal_False;
421*b1cdbd2cSJim Jagielski }
422*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseQuotedIdentifiers()423*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
424*b1cdbd2cSJim Jagielski {
425*b1cdbd2cSJim Jagielski return sal_False;
426*b1cdbd2cSJim Jagielski }
427*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseIdentifiers()428*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException)
429*b1cdbd2cSJim Jagielski {
430*b1cdbd2cSJim Jagielski return sal_False;
431*b1cdbd2cSJim Jagielski }
432*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsAlterTableWithAddColumn_throw()433*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsAlterTableWithAddColumn_throw( )
434*b1cdbd2cSJim Jagielski {
435*b1cdbd2cSJim Jagielski return sal_False;
436*b1cdbd2cSJim Jagielski }
437*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsAlterTableWithDropColumn_throw()438*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsAlterTableWithDropColumn_throw( )
439*b1cdbd2cSJim Jagielski {
440*b1cdbd2cSJim Jagielski return sal_False;
441*b1cdbd2cSJim Jagielski }
442*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxIndexLength()443*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException)
444*b1cdbd2cSJim Jagielski {
445*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
446*b1cdbd2cSJim Jagielski }
447*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsNonNullableColumns()448*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException)
449*b1cdbd2cSJim Jagielski {
450*b1cdbd2cSJim Jagielski return sal_False;
451*b1cdbd2cSJim Jagielski }
452*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogTerm()453*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException)
454*b1cdbd2cSJim Jagielski {
455*b1cdbd2cSJim Jagielski ::rtl::OUString aVal;
456*b1cdbd2cSJim Jagielski return aVal;
457*b1cdbd2cSJim Jagielski }
458*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_getIdentifierQuoteString_throw()459*b1cdbd2cSJim Jagielski ::rtl::OUString OEvoabDatabaseMetaData::impl_getIdentifierQuoteString_throw( )
460*b1cdbd2cSJim Jagielski {
461*b1cdbd2cSJim Jagielski // normally this is "
462*b1cdbd2cSJim Jagielski ::rtl::OUString aVal = ::rtl::OUString::createFromAscii("\"");
463*b1cdbd2cSJim Jagielski return aVal;
464*b1cdbd2cSJim Jagielski }
465*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getExtraNameCharacters()466*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException)
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski ::rtl::OUString aVal;
469*b1cdbd2cSJim Jagielski return aVal;
470*b1cdbd2cSJim Jagielski }
471*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDifferentTableCorrelationNames()472*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException)
473*b1cdbd2cSJim Jagielski {
474*b1cdbd2cSJim Jagielski return sal_False;
475*b1cdbd2cSJim Jagielski }
476*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_isCatalogAtStart_throw()477*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_isCatalogAtStart_throw( )
478*b1cdbd2cSJim Jagielski {
479*b1cdbd2cSJim Jagielski sal_Bool bValue = sal_False;
480*b1cdbd2cSJim Jagielski return bValue;
481*b1cdbd2cSJim Jagielski }
482*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionIgnoredInTransactions()483*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException)
484*b1cdbd2cSJim Jagielski {
485*b1cdbd2cSJim Jagielski return sal_True;
486*b1cdbd2cSJim Jagielski }
487*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionCausesTransactionCommit()488*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException)
489*b1cdbd2cSJim Jagielski {
490*b1cdbd2cSJim Jagielski return sal_True;
491*b1cdbd2cSJim Jagielski }
492*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataManipulationTransactionsOnly()493*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException)
494*b1cdbd2cSJim Jagielski {
495*b1cdbd2cSJim Jagielski return sal_True;
496*b1cdbd2cSJim Jagielski }
497*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataDefinitionAndDataManipulationTransactions()498*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException)
499*b1cdbd2cSJim Jagielski {
500*b1cdbd2cSJim Jagielski return sal_True;
501*b1cdbd2cSJim Jagielski }
502*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedDelete()503*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException)
504*b1cdbd2cSJim Jagielski {
505*b1cdbd2cSJim Jagielski return sal_False;
506*b1cdbd2cSJim Jagielski }
507*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedUpdate()508*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException)
509*b1cdbd2cSJim Jagielski {
510*b1cdbd2cSJim Jagielski return sal_False;
511*b1cdbd2cSJim Jagielski }
512*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossRollback()513*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException)
514*b1cdbd2cSJim Jagielski {
515*b1cdbd2cSJim Jagielski return sal_False;
516*b1cdbd2cSJim Jagielski }
517*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossCommit()518*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException)
519*b1cdbd2cSJim Jagielski {
520*b1cdbd2cSJim Jagielski return sal_False;
521*b1cdbd2cSJim Jagielski }
522*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossCommit()523*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException)
524*b1cdbd2cSJim Jagielski {
525*b1cdbd2cSJim Jagielski return sal_False;
526*b1cdbd2cSJim Jagielski }
527*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossRollback()528*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException)
529*b1cdbd2cSJim Jagielski {
530*b1cdbd2cSJim Jagielski return sal_False;
531*b1cdbd2cSJim Jagielski }
532*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactionIsolationLevel(sal_Int32)533*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 /*level*/ ) throw(SQLException, RuntimeException)
534*b1cdbd2cSJim Jagielski {
535*b1cdbd2cSJim Jagielski return sal_False;
536*b1cdbd2cSJim Jagielski }
537*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsSchemasInDataManipulation_throw()538*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsSchemasInDataManipulation_throw( )
539*b1cdbd2cSJim Jagielski {
540*b1cdbd2cSJim Jagielski return sal_False;
541*b1cdbd2cSJim Jagielski }
542*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92FullSQL()543*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException)
544*b1cdbd2cSJim Jagielski {
545*b1cdbd2cSJim Jagielski return sal_False;
546*b1cdbd2cSJim Jagielski }
547*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92EntryLevelSQL()548*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException)
549*b1cdbd2cSJim Jagielski {
550*b1cdbd2cSJim Jagielski return sal_True; // should be supported at least
551*b1cdbd2cSJim Jagielski }
552*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsIntegrityEnhancementFacility()553*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException)
554*b1cdbd2cSJim Jagielski {
555*b1cdbd2cSJim Jagielski return sal_False;
556*b1cdbd2cSJim Jagielski }
557*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInIndexDefinitions()558*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException)
559*b1cdbd2cSJim Jagielski {
560*b1cdbd2cSJim Jagielski return sal_False;
561*b1cdbd2cSJim Jagielski }
562*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsSchemasInTableDefinitions_throw()563*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsSchemasInTableDefinitions_throw( )
564*b1cdbd2cSJim Jagielski {
565*b1cdbd2cSJim Jagielski return sal_False;
566*b1cdbd2cSJim Jagielski }
567*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsCatalogsInTableDefinitions_throw()568*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsCatalogsInTableDefinitions_throw( )
569*b1cdbd2cSJim Jagielski {
570*b1cdbd2cSJim Jagielski return sal_False;
571*b1cdbd2cSJim Jagielski }
572*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInIndexDefinitions()573*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException)
574*b1cdbd2cSJim Jagielski {
575*b1cdbd2cSJim Jagielski return sal_False;
576*b1cdbd2cSJim Jagielski }
577*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsCatalogsInDataManipulation_throw()578*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsCatalogsInDataManipulation_throw( )
579*b1cdbd2cSJim Jagielski {
580*b1cdbd2cSJim Jagielski return sal_False;
581*b1cdbd2cSJim Jagielski }
582*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOuterJoins()583*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException)
584*b1cdbd2cSJim Jagielski {
585*b1cdbd2cSJim Jagielski return sal_False;
586*b1cdbd2cSJim Jagielski }
587*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxStatementLength()588*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException)
589*b1cdbd2cSJim Jagielski {
590*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
591*b1cdbd2cSJim Jagielski }
592*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxProcedureNameLength()593*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException)
594*b1cdbd2cSJim Jagielski {
595*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
596*b1cdbd2cSJim Jagielski }
597*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxSchemaNameLength()598*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException)
599*b1cdbd2cSJim Jagielski {
600*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
601*b1cdbd2cSJim Jagielski }
602*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactions()603*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException)
604*b1cdbd2cSJim Jagielski {
605*b1cdbd2cSJim Jagielski return sal_False;
606*b1cdbd2cSJim Jagielski }
607*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allProceduresAreCallable()608*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException)
609*b1cdbd2cSJim Jagielski {
610*b1cdbd2cSJim Jagielski return sal_False;
611*b1cdbd2cSJim Jagielski }
612*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsStoredProcedures()613*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException)
614*b1cdbd2cSJim Jagielski {
615*b1cdbd2cSJim Jagielski return sal_False;
616*b1cdbd2cSJim Jagielski }
617*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSelectForUpdate()618*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException)
619*b1cdbd2cSJim Jagielski {
620*b1cdbd2cSJim Jagielski return sal_False;
621*b1cdbd2cSJim Jagielski }
622*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allTablesAreSelectable()623*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException)
624*b1cdbd2cSJim Jagielski {
625*b1cdbd2cSJim Jagielski // We allow you to select from any table.
626*b1cdbd2cSJim Jagielski return sal_True;
627*b1cdbd2cSJim Jagielski }
628*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
isReadOnly()629*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException)
630*b1cdbd2cSJim Jagielski {
631*b1cdbd2cSJim Jagielski // For now definately read-only, no support for update/delete
632*b1cdbd2cSJim Jagielski return sal_True;
633*b1cdbd2cSJim Jagielski }
634*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFiles()635*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException)
636*b1cdbd2cSJim Jagielski {
637*b1cdbd2cSJim Jagielski return sal_False;
638*b1cdbd2cSJim Jagielski }
639*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFilePerTable()640*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException)
641*b1cdbd2cSJim Jagielski {
642*b1cdbd2cSJim Jagielski return sal_False;
643*b1cdbd2cSJim Jagielski }
644*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTypeConversion()645*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException)
646*b1cdbd2cSJim Jagielski {
647*b1cdbd2cSJim Jagielski return sal_False;
648*b1cdbd2cSJim Jagielski }
649*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullPlusNonNullIsNull()650*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException)
651*b1cdbd2cSJim Jagielski {
652*b1cdbd2cSJim Jagielski return sal_False;
653*b1cdbd2cSJim Jagielski }
654*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsColumnAliasing()655*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException)
656*b1cdbd2cSJim Jagielski {
657*b1cdbd2cSJim Jagielski // todo add Support for this.
658*b1cdbd2cSJim Jagielski return sal_False;
659*b1cdbd2cSJim Jagielski }
660*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTableCorrelationNames()661*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException)
662*b1cdbd2cSJim Jagielski {
663*b1cdbd2cSJim Jagielski return sal_False;
664*b1cdbd2cSJim Jagielski }
665*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsConvert(sal_Int32,sal_Int32)666*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsConvert( sal_Int32 /*fromType*/, sal_Int32 /*toType*/ ) throw(SQLException, RuntimeException)
667*b1cdbd2cSJim Jagielski {
668*b1cdbd2cSJim Jagielski return sal_False;
669*b1cdbd2cSJim Jagielski }
670*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExpressionsInOrderBy()671*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException)
672*b1cdbd2cSJim Jagielski {
673*b1cdbd2cSJim Jagielski return sal_False;
674*b1cdbd2cSJim Jagielski }
675*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupBy()676*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException)
677*b1cdbd2cSJim Jagielski {
678*b1cdbd2cSJim Jagielski return sal_False;
679*b1cdbd2cSJim Jagielski }
680*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByBeyondSelect()681*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException)
682*b1cdbd2cSJim Jagielski {
683*b1cdbd2cSJim Jagielski return sal_False;
684*b1cdbd2cSJim Jagielski }
685*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByUnrelated()686*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException)
687*b1cdbd2cSJim Jagielski {
688*b1cdbd2cSJim Jagielski return sal_False;
689*b1cdbd2cSJim Jagielski }
690*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleTransactions()691*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException)
692*b1cdbd2cSJim Jagielski {
693*b1cdbd2cSJim Jagielski return sal_False;
694*b1cdbd2cSJim Jagielski }
695*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleResultSets()696*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException)
697*b1cdbd2cSJim Jagielski {
698*b1cdbd2cSJim Jagielski return sal_False;
699*b1cdbd2cSJim Jagielski }
700*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLikeEscapeClause()701*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException)
702*b1cdbd2cSJim Jagielski {
703*b1cdbd2cSJim Jagielski return sal_False;
704*b1cdbd2cSJim Jagielski }
705*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOrderByUnrelated()706*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException)
707*b1cdbd2cSJim Jagielski {
708*b1cdbd2cSJim Jagielski return sal_False;
709*b1cdbd2cSJim Jagielski }
710*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnion()711*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException)
712*b1cdbd2cSJim Jagielski {
713*b1cdbd2cSJim Jagielski return sal_False;
714*b1cdbd2cSJim Jagielski }
715*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnionAll()716*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException)
717*b1cdbd2cSJim Jagielski {
718*b1cdbd2cSJim Jagielski return sal_False;
719*b1cdbd2cSJim Jagielski }
720*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMixedCaseIdentifiers()721*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException)
722*b1cdbd2cSJim Jagielski {
723*b1cdbd2cSJim Jagielski return sal_False;
724*b1cdbd2cSJim Jagielski }
725*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_supportsMixedCaseQuotedIdentifiers_throw()726*b1cdbd2cSJim Jagielski sal_Bool OEvoabDatabaseMetaData::impl_supportsMixedCaseQuotedIdentifiers_throw( )
727*b1cdbd2cSJim Jagielski {
728*b1cdbd2cSJim Jagielski // Any case may be used
729*b1cdbd2cSJim Jagielski return sal_True;
730*b1cdbd2cSJim Jagielski }
731*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtEnd()732*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException)
733*b1cdbd2cSJim Jagielski {
734*b1cdbd2cSJim Jagielski return sal_False;
735*b1cdbd2cSJim Jagielski }
736*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtStart()737*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException)
738*b1cdbd2cSJim Jagielski {
739*b1cdbd2cSJim Jagielski return sal_True;
740*b1cdbd2cSJim Jagielski }
741*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedHigh()742*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException)
743*b1cdbd2cSJim Jagielski {
744*b1cdbd2cSJim Jagielski return sal_False;
745*b1cdbd2cSJim Jagielski }
746*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedLow()747*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException)
748*b1cdbd2cSJim Jagielski {
749*b1cdbd2cSJim Jagielski return sal_True;
750*b1cdbd2cSJim Jagielski }
751*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInProcedureCalls()752*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException)
753*b1cdbd2cSJim Jagielski {
754*b1cdbd2cSJim Jagielski return sal_False;
755*b1cdbd2cSJim Jagielski }
756*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInPrivilegeDefinitions()757*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException)
758*b1cdbd2cSJim Jagielski {
759*b1cdbd2cSJim Jagielski return sal_False;
760*b1cdbd2cSJim Jagielski }
761*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInProcedureCalls()762*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException)
763*b1cdbd2cSJim Jagielski {
764*b1cdbd2cSJim Jagielski return sal_False;
765*b1cdbd2cSJim Jagielski }
766*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInPrivilegeDefinitions()767*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException)
768*b1cdbd2cSJim Jagielski {
769*b1cdbd2cSJim Jagielski return sal_False;
770*b1cdbd2cSJim Jagielski }
771*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCorrelatedSubqueries()772*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException)
773*b1cdbd2cSJim Jagielski {
774*b1cdbd2cSJim Jagielski return sal_False;
775*b1cdbd2cSJim Jagielski }
776*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInComparisons()777*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException)
778*b1cdbd2cSJim Jagielski {
779*b1cdbd2cSJim Jagielski return sal_False;
780*b1cdbd2cSJim Jagielski }
781*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInExists()782*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException)
783*b1cdbd2cSJim Jagielski {
784*b1cdbd2cSJim Jagielski return sal_False;
785*b1cdbd2cSJim Jagielski }
786*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInIns()787*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException)
788*b1cdbd2cSJim Jagielski {
789*b1cdbd2cSJim Jagielski return sal_False;
790*b1cdbd2cSJim Jagielski }
791*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInQuantifieds()792*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException)
793*b1cdbd2cSJim Jagielski {
794*b1cdbd2cSJim Jagielski return sal_False;
795*b1cdbd2cSJim Jagielski }
796*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92IntermediateSQL()797*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException)
798*b1cdbd2cSJim Jagielski {
799*b1cdbd2cSJim Jagielski return sal_False;
800*b1cdbd2cSJim Jagielski }
801*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getURL()802*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException)
803*b1cdbd2cSJim Jagielski {
804*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( m_aMutex );
805*b1cdbd2cSJim Jagielski
806*b1cdbd2cSJim Jagielski return m_pConnection->getURL();
807*b1cdbd2cSJim Jagielski }
808*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUserName()809*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException)
810*b1cdbd2cSJim Jagielski {
811*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
812*b1cdbd2cSJim Jagielski return aValue;
813*b1cdbd2cSJim Jagielski }
814*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverName()815*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException)
816*b1cdbd2cSJim Jagielski {
817*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
818*b1cdbd2cSJim Jagielski return aValue;
819*b1cdbd2cSJim Jagielski }
820*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverVersion()821*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException)
822*b1cdbd2cSJim Jagielski {
823*b1cdbd2cSJim Jagielski ::rtl::OUString aValue = ::rtl::OUString::valueOf((sal_Int32)1);
824*b1cdbd2cSJim Jagielski return aValue;
825*b1cdbd2cSJim Jagielski }
826*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductVersion()827*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException)
828*b1cdbd2cSJim Jagielski {
829*b1cdbd2cSJim Jagielski ::rtl::OUString aValue = ::rtl::OUString::valueOf((sal_Int32)0);
830*b1cdbd2cSJim Jagielski return aValue;
831*b1cdbd2cSJim Jagielski }
832*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductName()833*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException)
834*b1cdbd2cSJim Jagielski {
835*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
836*b1cdbd2cSJim Jagielski return aValue;
837*b1cdbd2cSJim Jagielski }
838*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedureTerm()839*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException)
840*b1cdbd2cSJim Jagielski {
841*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
842*b1cdbd2cSJim Jagielski return aValue;
843*b1cdbd2cSJim Jagielski }
844*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSchemaTerm()845*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException)
846*b1cdbd2cSJim Jagielski {
847*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
848*b1cdbd2cSJim Jagielski return aValue;
849*b1cdbd2cSJim Jagielski }
850*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMajorVersion()851*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException)
852*b1cdbd2cSJim Jagielski {
853*b1cdbd2cSJim Jagielski return 1;
854*b1cdbd2cSJim Jagielski }
855*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDefaultTransactionIsolation()856*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException)
857*b1cdbd2cSJim Jagielski {
858*b1cdbd2cSJim Jagielski return TransactionIsolation::NONE;
859*b1cdbd2cSJim Jagielski }
860*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMinorVersion()861*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException)
862*b1cdbd2cSJim Jagielski {
863*b1cdbd2cSJim Jagielski return 0;
864*b1cdbd2cSJim Jagielski }
865*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSQLKeywords()866*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException)
867*b1cdbd2cSJim Jagielski {
868*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
869*b1cdbd2cSJim Jagielski return aValue;
870*b1cdbd2cSJim Jagielski }
871*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSearchStringEscape()872*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException)
873*b1cdbd2cSJim Jagielski {
874*b1cdbd2cSJim Jagielski ::rtl::OUString aValue;
875*b1cdbd2cSJim Jagielski return aValue;
876*b1cdbd2cSJim Jagielski }
877*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getStringFunctions()878*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException)
879*b1cdbd2cSJim Jagielski {
880*b1cdbd2cSJim Jagielski return ::rtl::OUString();
881*b1cdbd2cSJim Jagielski }
882*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTimeDateFunctions()883*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException)
884*b1cdbd2cSJim Jagielski {
885*b1cdbd2cSJim Jagielski return ::rtl::OUString();
886*b1cdbd2cSJim Jagielski }
887*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSystemFunctions()888*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException)
889*b1cdbd2cSJim Jagielski {
890*b1cdbd2cSJim Jagielski return ::rtl::OUString();
891*b1cdbd2cSJim Jagielski }
892*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getNumericFunctions()893*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL OEvoabDatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException)
894*b1cdbd2cSJim Jagielski {
895*b1cdbd2cSJim Jagielski return ::rtl::OUString();
896*b1cdbd2cSJim Jagielski }
897*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExtendedSQLGrammar()898*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException)
899*b1cdbd2cSJim Jagielski {
900*b1cdbd2cSJim Jagielski return sal_False;
901*b1cdbd2cSJim Jagielski }
902*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCoreSQLGrammar()903*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException)
904*b1cdbd2cSJim Jagielski {
905*b1cdbd2cSJim Jagielski return sal_False;
906*b1cdbd2cSJim Jagielski }
907*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMinimumSQLGrammar()908*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException)
909*b1cdbd2cSJim Jagielski {
910*b1cdbd2cSJim Jagielski return sal_True;
911*b1cdbd2cSJim Jagielski }
912*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsFullOuterJoins()913*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException)
914*b1cdbd2cSJim Jagielski {
915*b1cdbd2cSJim Jagielski return sal_False;
916*b1cdbd2cSJim Jagielski }
917*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLimitedOuterJoins()918*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException)
919*b1cdbd2cSJim Jagielski {
920*b1cdbd2cSJim Jagielski return sal_False;
921*b1cdbd2cSJim Jagielski }
922*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInGroupBy()923*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException)
924*b1cdbd2cSJim Jagielski {
925*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
926*b1cdbd2cSJim Jagielski }
927*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInOrderBy()928*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException)
929*b1cdbd2cSJim Jagielski {
930*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
931*b1cdbd2cSJim Jagielski }
932*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInSelect()933*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException)
934*b1cdbd2cSJim Jagielski {
935*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
936*b1cdbd2cSJim Jagielski }
937*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxUserNameLength()938*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL OEvoabDatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException)
939*b1cdbd2cSJim Jagielski {
940*b1cdbd2cSJim Jagielski return 0;// 0 means no limit
941*b1cdbd2cSJim Jagielski }
942*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetType(sal_Int32)943*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsResultSetType( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
944*b1cdbd2cSJim Jagielski {
945*b1cdbd2cSJim Jagielski return sal_False;
946*b1cdbd2cSJim Jagielski }
947*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetConcurrency(sal_Int32,sal_Int32)948*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 /*setType*/, sal_Int32 /*concurrency*/ ) throw(SQLException, RuntimeException)
949*b1cdbd2cSJim Jagielski {
950*b1cdbd2cSJim Jagielski return sal_False;
951*b1cdbd2cSJim Jagielski }
952*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownUpdatesAreVisible(sal_Int32)953*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
954*b1cdbd2cSJim Jagielski {
955*b1cdbd2cSJim Jagielski return sal_False;
956*b1cdbd2cSJim Jagielski }
957*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownDeletesAreVisible(sal_Int32)958*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
959*b1cdbd2cSJim Jagielski {
960*b1cdbd2cSJim Jagielski return sal_False;
961*b1cdbd2cSJim Jagielski }
962*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownInsertsAreVisible(sal_Int32)963*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
964*b1cdbd2cSJim Jagielski {
965*b1cdbd2cSJim Jagielski return sal_False;
966*b1cdbd2cSJim Jagielski }
967*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersUpdatesAreVisible(sal_Int32)968*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
969*b1cdbd2cSJim Jagielski {
970*b1cdbd2cSJim Jagielski return sal_False;
971*b1cdbd2cSJim Jagielski }
972*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersDeletesAreVisible(sal_Int32)973*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
974*b1cdbd2cSJim Jagielski {
975*b1cdbd2cSJim Jagielski return sal_False;
976*b1cdbd2cSJim Jagielski }
977*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersInsertsAreVisible(sal_Int32)978*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
979*b1cdbd2cSJim Jagielski {
980*b1cdbd2cSJim Jagielski return sal_False;
981*b1cdbd2cSJim Jagielski }
982*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
updatesAreDetected(sal_Int32)983*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::updatesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
984*b1cdbd2cSJim Jagielski {
985*b1cdbd2cSJim Jagielski return sal_False;
986*b1cdbd2cSJim Jagielski }
987*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
deletesAreDetected(sal_Int32)988*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::deletesAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
989*b1cdbd2cSJim Jagielski {
990*b1cdbd2cSJim Jagielski return sal_False;
991*b1cdbd2cSJim Jagielski }
992*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
insertsAreDetected(sal_Int32)993*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::insertsAreDetected( sal_Int32 /*setType*/ ) throw(SQLException, RuntimeException)
994*b1cdbd2cSJim Jagielski {
995*b1cdbd2cSJim Jagielski return sal_False;
996*b1cdbd2cSJim Jagielski }
997*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsBatchUpdates()998*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OEvoabDatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException)
999*b1cdbd2cSJim Jagielski {
1000*b1cdbd2cSJim Jagielski return sal_False;
1001*b1cdbd2cSJim Jagielski }
1002*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
1003*b1cdbd2cSJim Jagielski // here follow all methods which return a resultset
1004*b1cdbd2cSJim Jagielski // the first methods is an example implementation how to use this resultset
1005*b1cdbd2cSJim Jagielski // of course you could implement it on your and you should do this because
1006*b1cdbd2cSJim Jagielski // the general way is more memory expensive
1007*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTableTypes()1008*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException)
1009*b1cdbd2cSJim Jagielski {
1010*b1cdbd2cSJim Jagielski /* Dont need to change as evoab driver supports only table */
1011*b1cdbd2cSJim Jagielski
1012*b1cdbd2cSJim Jagielski // there exists no possibility to get table types so we have to check
1013*b1cdbd2cSJim Jagielski static ::rtl::OUString sTableTypes[] =
1014*b1cdbd2cSJim Jagielski {
1015*b1cdbd2cSJim Jagielski ::rtl::OUString::createFromAscii("TABLE"),
1016*b1cdbd2cSJim Jagielski // Currently we only support a 'TABLE' nothing more complex
1017*b1cdbd2cSJim Jagielski };
1018*b1cdbd2cSJim Jagielski ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTableTypes);
1019*b1cdbd2cSJim Jagielski Reference< XResultSet > xRef = pResult;
1020*b1cdbd2cSJim Jagielski
1021*b1cdbd2cSJim Jagielski // here we fill the rows which should be visible when ask for data from the resultset returned here
1022*b1cdbd2cSJim Jagielski sal_Int32 nSize = sizeof(sTableTypes) / sizeof(::rtl::OUString);
1023*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORows aRows;
1024*b1cdbd2cSJim Jagielski for(sal_Int32 i=0;i < nSize;++i)
1025*b1cdbd2cSJim Jagielski {
1026*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORow aRow;
1027*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1028*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator(sTableTypes[i]));
1029*b1cdbd2cSJim Jagielski
1030*b1cdbd2cSJim Jagielski // bound row
1031*b1cdbd2cSJim Jagielski aRows.push_back(aRow);
1032*b1cdbd2cSJim Jagielski }
1033*b1cdbd2cSJim Jagielski // here we set the rows at the resultset
1034*b1cdbd2cSJim Jagielski pResult->setRows(aRows);
1035*b1cdbd2cSJim Jagielski return xRef;
1036*b1cdbd2cSJim Jagielski }
1037*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
impl_getTypeInfo_throw()1038*b1cdbd2cSJim Jagielski Reference< XResultSet > OEvoabDatabaseMetaData::impl_getTypeInfo_throw( )
1039*b1cdbd2cSJim Jagielski {
1040*b1cdbd2cSJim Jagielski /*
1041*b1cdbd2cSJim Jagielski * Return the proper type information required by evo driver
1042*b1cdbd2cSJim Jagielski */
1043*b1cdbd2cSJim Jagielski
1044*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTypeInfo);
1045*b1cdbd2cSJim Jagielski
1046*b1cdbd2cSJim Jagielski Reference< XResultSet > xResultSet = pResultSet;
1047*b1cdbd2cSJim Jagielski static ODatabaseMetaDataResultSet::ORows aRows;
1048*b1cdbd2cSJim Jagielski
1049*b1cdbd2cSJim Jagielski if(aRows.empty())
1050*b1cdbd2cSJim Jagielski {
1051*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORow aRow;
1052*b1cdbd2cSJim Jagielski aRow.reserve(19);
1053*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1054*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR")));
1055*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator(DataType::VARCHAR));
1056*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator((sal_Int32)s_nCHAR_OCTET_LENGTH));
1057*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
1058*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getQuoteValue());
1059*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1060*b1cdbd2cSJim Jagielski // aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnValue::NULLABLE));
1061*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
1062*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
1063*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator((sal_Int32)ColumnSearch::FULL));
1064*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get1Value());
1065*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
1066*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
1067*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1068*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
1069*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::get0Value());
1070*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1071*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1072*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator((sal_Int32)10));
1073*b1cdbd2cSJim Jagielski
1074*b1cdbd2cSJim Jagielski aRows.push_back(aRow);
1075*b1cdbd2cSJim Jagielski
1076*b1cdbd2cSJim Jagielski aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("VARCHAR"));
1077*b1cdbd2cSJim Jagielski aRow[2] = new ORowSetValueDecorator(DataType::VARCHAR);
1078*b1cdbd2cSJim Jagielski aRow[3] = new ORowSetValueDecorator((sal_Int32)65535);
1079*b1cdbd2cSJim Jagielski aRows.push_back(aRow);
1080*b1cdbd2cSJim Jagielski }
1081*b1cdbd2cSJim Jagielski pResultSet->setRows(aRows);
1082*b1cdbd2cSJim Jagielski return xResultSet;
1083*b1cdbd2cSJim Jagielski }
1084*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumns(const Any &,const::rtl::OUString &,const::rtl::OUString &,const::rtl::OUString & columnNamePattern)1085*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getColumns(
1086*b1cdbd2cSJim Jagielski const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*tableNamePattern*/,
1087*b1cdbd2cSJim Jagielski const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException)
1088*b1cdbd2cSJim Jagielski {
1089*b1cdbd2cSJim Jagielski // this returns an empty resultset where the column-names are already set
1090*b1cdbd2cSJim Jagielski // in special the metadata of the resultset already returns the right columns
1091*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumns );
1092*b1cdbd2cSJim Jagielski Reference< XResultSet > xResultSet = pResultSet;
1093*b1cdbd2cSJim Jagielski pResultSet->setRows( getColumnRows( columnNamePattern ) );
1094*b1cdbd2cSJim Jagielski return xResultSet;
1095*b1cdbd2cSJim Jagielski }
1096*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTables(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<::rtl::OUString> & types)1097*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getTables(
1098*b1cdbd2cSJim Jagielski const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/,
1099*b1cdbd2cSJim Jagielski const ::rtl::OUString& /*tableNamePattern*/, const Sequence< ::rtl::OUString >& types ) throw(SQLException, RuntimeException)
1100*b1cdbd2cSJim Jagielski {
1101*b1cdbd2cSJim Jagielski ::osl::MutexGuard aGuard( m_aMutex );
1102*b1cdbd2cSJim Jagielski
1103*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet(ODatabaseMetaDataResultSet::eTableTypes);
1104*b1cdbd2cSJim Jagielski Reference< XResultSet > xRef = pResult;
1105*b1cdbd2cSJim Jagielski
1106*b1cdbd2cSJim Jagielski // check if any type is given
1107*b1cdbd2cSJim Jagielski // when no types are given then we have to return all tables e.g. TABLE
1108*b1cdbd2cSJim Jagielski
1109*b1cdbd2cSJim Jagielski const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
1110*b1cdbd2cSJim Jagielski
1111*b1cdbd2cSJim Jagielski sal_Bool bTableFound = sal_True;
1112*b1cdbd2cSJim Jagielski sal_Int32 nLength = types.getLength();
1113*b1cdbd2cSJim Jagielski if(nLength)
1114*b1cdbd2cSJim Jagielski {
1115*b1cdbd2cSJim Jagielski bTableFound = sal_False;
1116*b1cdbd2cSJim Jagielski
1117*b1cdbd2cSJim Jagielski const ::rtl::OUString* pBegin = types.getConstArray();
1118*b1cdbd2cSJim Jagielski const ::rtl::OUString* pEnd = pBegin + nLength;
1119*b1cdbd2cSJim Jagielski for(;pBegin != pEnd;++pBegin)
1120*b1cdbd2cSJim Jagielski {
1121*b1cdbd2cSJim Jagielski if(*pBegin == aTable)
1122*b1cdbd2cSJim Jagielski {
1123*b1cdbd2cSJim Jagielski bTableFound = sal_True;
1124*b1cdbd2cSJim Jagielski break;
1125*b1cdbd2cSJim Jagielski }
1126*b1cdbd2cSJim Jagielski }
1127*b1cdbd2cSJim Jagielski }
1128*b1cdbd2cSJim Jagielski if(!bTableFound)
1129*b1cdbd2cSJim Jagielski return xRef;
1130*b1cdbd2cSJim Jagielski
1131*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORows aRows;
1132*b1cdbd2cSJim Jagielski
1133*b1cdbd2cSJim Jagielski ESourceList *pSourceList;
1134*b1cdbd2cSJim Jagielski if( !e_book_get_addressbooks (&pSourceList, NULL) )
1135*b1cdbd2cSJim Jagielski pSourceList = NULL;
1136*b1cdbd2cSJim Jagielski
1137*b1cdbd2cSJim Jagielski GSList *g;
1138*b1cdbd2cSJim Jagielski for( g = e_source_list_peek_groups( pSourceList ); g; g = g->next)
1139*b1cdbd2cSJim Jagielski {
1140*b1cdbd2cSJim Jagielski GSList *s;
1141*b1cdbd2cSJim Jagielski const char *p = e_source_group_peek_base_uri(E_SOURCE_GROUP(g->data));
1142*b1cdbd2cSJim Jagielski
1143*b1cdbd2cSJim Jagielski switch (m_pConnection->getSDBCAddressType()) {
1144*b1cdbd2cSJim Jagielski case SDBCAddress::EVO_GWISE:
1145*b1cdbd2cSJim Jagielski if (0==strncmp( "groupwise://", p, 11 ))
1146*b1cdbd2cSJim Jagielski break;
1147*b1cdbd2cSJim Jagielski else
1148*b1cdbd2cSJim Jagielski continue;
1149*b1cdbd2cSJim Jagielski case SDBCAddress::EVO_LOCAL:
1150*b1cdbd2cSJim Jagielski if (0==strncmp( "file://", p, 6 ))
1151*b1cdbd2cSJim Jagielski break;
1152*b1cdbd2cSJim Jagielski else
1153*b1cdbd2cSJim Jagielski continue;
1154*b1cdbd2cSJim Jagielski case SDBCAddress::EVO_LDAP:
1155*b1cdbd2cSJim Jagielski if (0==strncmp( "ldap://", p, 6 ))
1156*b1cdbd2cSJim Jagielski break;
1157*b1cdbd2cSJim Jagielski else
1158*b1cdbd2cSJim Jagielski continue;
1159*b1cdbd2cSJim Jagielski case SDBCAddress::Unknown:
1160*b1cdbd2cSJim Jagielski break;
1161*b1cdbd2cSJim Jagielski }
1162*b1cdbd2cSJim Jagielski for (s = e_source_group_peek_sources (E_SOURCE_GROUP (g->data)); s; s = s->next)
1163*b1cdbd2cSJim Jagielski {
1164*b1cdbd2cSJim Jagielski ESource *pSource = E_SOURCE (s->data);
1165*b1cdbd2cSJim Jagielski
1166*b1cdbd2cSJim Jagielski rtl::OUString aName = rtl::OStringToOUString( e_source_peek_name( pSource ),
1167*b1cdbd2cSJim Jagielski RTL_TEXTENCODING_UTF8 );
1168*b1cdbd2cSJim Jagielski
1169*b1cdbd2cSJim Jagielski ODatabaseMetaDataResultSet::ORow aRow(3);
1170*b1cdbd2cSJim Jagielski aRow.reserve(6);
1171*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator(aName));
1172*b1cdbd2cSJim Jagielski aRow.push_back(new ORowSetValueDecorator(aTable));
1173*b1cdbd2cSJim Jagielski aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue());
1174*b1cdbd2cSJim Jagielski aRows.push_back(aRow);
1175*b1cdbd2cSJim Jagielski }
1176*b1cdbd2cSJim Jagielski }
1177*b1cdbd2cSJim Jagielski
1178*b1cdbd2cSJim Jagielski pResult->setRows(aRows);
1179*b1cdbd2cSJim Jagielski
1180*b1cdbd2cSJim Jagielski return xRef;
1181*b1cdbd2cSJim Jagielski }
1182*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUDTs(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<sal_Int32> &)1183*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL OEvoabDatabaseMetaData::getUDTs( const Any& /*catalog*/, const ::rtl::OUString& /*schemaPattern*/, const ::rtl::OUString& /*typeNamePattern*/, const Sequence< sal_Int32 >& /*types*/ ) throw(SQLException, RuntimeException)
1184*b1cdbd2cSJim Jagielski {
1185*b1cdbd2cSJim Jagielski ::dbtools::throwFeatureNotImplementedException( "XDatabaseMetaDaza::getUDTs", *this );
1186*b1cdbd2cSJim Jagielski return NULL;
1187*b1cdbd2cSJim Jagielski }
1188*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
1189