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 
27*b1cdbd2cSJim Jagielski #include "KDatabaseMetaData.hxx"
28*b1cdbd2cSJim Jagielski #include "kfields.hxx"
29*b1cdbd2cSJim Jagielski #include "KDEInit.h"
30*b1cdbd2cSJim Jagielski #include <shell/kde_headers.h>
31*b1cdbd2cSJim Jagielski #include "FDatabaseMetaDataResultSet.hxx"
32*b1cdbd2cSJim Jagielski #include "OTypeInfo.hxx"
33*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ColumnValue.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/ResultSetType.hpp>
35*b1cdbd2cSJim Jagielski #include <com/sun/star/sdbc/TransactionIsolation.hpp>
36*b1cdbd2cSJim Jagielski 
37*b1cdbd2cSJim Jagielski using namespace connectivity::kab;
38*b1cdbd2cSJim Jagielski using namespace com::sun::star::uno;
39*b1cdbd2cSJim Jagielski using namespace com::sun::star::lang;
40*b1cdbd2cSJim Jagielski using namespace com::sun::star::beans;
41*b1cdbd2cSJim Jagielski using namespace com::sun::star::sdbc;
42*b1cdbd2cSJim Jagielski 
KabDatabaseMetaData(KabConnection * _pCon)43*b1cdbd2cSJim Jagielski KabDatabaseMetaData::KabDatabaseMetaData(KabConnection* _pCon)
44*b1cdbd2cSJim Jagielski 		: m_xConnection(_pCon),
45*b1cdbd2cSJim Jagielski 		  m_bUseCatalog(sal_True)
46*b1cdbd2cSJim Jagielski {
47*b1cdbd2cSJim Jagielski 	OSL_ENSURE(_pCon,"KabDatabaseMetaData::KabDatabaseMetaData: No connection set!");
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski 	osl_incrementInterlockedCount( &m_refCount );
50*b1cdbd2cSJim Jagielski 	m_bUseCatalog	= !(usesLocalFiles() || usesLocalFilePerTable());
51*b1cdbd2cSJim Jagielski 	osl_decrementInterlockedCount( &m_refCount );
52*b1cdbd2cSJim Jagielski }
53*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
~KabDatabaseMetaData()54*b1cdbd2cSJim Jagielski KabDatabaseMetaData::~KabDatabaseMetaData()
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski }
57*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getAddressBookTableName()58*b1cdbd2cSJim Jagielski const ::rtl::OUString & KabDatabaseMetaData::getAddressBookTableName()
59*b1cdbd2cSJim Jagielski {
60*b1cdbd2cSJim Jagielski 	static const ::rtl::OUString aAddressBookTableName
61*b1cdbd2cSJim Jagielski 		(::rtl::OUString::createFromAscii( i18n("Address Book") ));
62*b1cdbd2cSJim Jagielski 
63*b1cdbd2cSJim Jagielski 	return aAddressBookTableName;
64*b1cdbd2cSJim Jagielski }
65*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogSeparator()66*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogSeparator(  ) throw(SQLException, RuntimeException)
67*b1cdbd2cSJim Jagielski {
68*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
69*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
70*b1cdbd2cSJim Jagielski 	{ // do some special here for you database
71*b1cdbd2cSJim Jagielski 	}
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski 	return aVal;
74*b1cdbd2cSJim Jagielski }
75*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxBinaryLiteralLength()76*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxBinaryLiteralLength(  ) throw(SQLException, RuntimeException)
77*b1cdbd2cSJim Jagielski {
78*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
79*b1cdbd2cSJim Jagielski 	return nValue;
80*b1cdbd2cSJim Jagielski }
81*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxRowSize()82*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxRowSize(  ) throw(SQLException, RuntimeException)
83*b1cdbd2cSJim Jagielski {
84*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
85*b1cdbd2cSJim Jagielski 	return nValue;
86*b1cdbd2cSJim Jagielski }
87*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCatalogNameLength()88*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCatalogNameLength(  ) throw(SQLException, RuntimeException)
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
91*b1cdbd2cSJim Jagielski 	return nValue;
92*b1cdbd2cSJim Jagielski }
93*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCharLiteralLength()94*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCharLiteralLength(  ) throw(SQLException, RuntimeException)
95*b1cdbd2cSJim Jagielski {
96*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
97*b1cdbd2cSJim Jagielski 	return nValue;
98*b1cdbd2cSJim Jagielski }
99*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnNameLength()100*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnNameLength(  ) throw(SQLException, RuntimeException)
101*b1cdbd2cSJim Jagielski {
102*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
103*b1cdbd2cSJim Jagielski 	return nValue;
104*b1cdbd2cSJim Jagielski }
105*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInIndex()106*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInIndex(  ) throw(SQLException, RuntimeException)
107*b1cdbd2cSJim Jagielski {
108*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
109*b1cdbd2cSJim Jagielski 	return nValue;
110*b1cdbd2cSJim Jagielski }
111*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxCursorNameLength()112*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCursorNameLength(  ) throw(SQLException, RuntimeException)
113*b1cdbd2cSJim Jagielski {
114*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
115*b1cdbd2cSJim Jagielski 	return nValue;
116*b1cdbd2cSJim Jagielski }
117*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxConnections()118*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxConnections(  ) throw(SQLException, RuntimeException)
119*b1cdbd2cSJim Jagielski {
120*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
121*b1cdbd2cSJim Jagielski 	return nValue;
122*b1cdbd2cSJim Jagielski }
123*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInTable()124*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInTable(  ) throw(SQLException, RuntimeException)
125*b1cdbd2cSJim Jagielski {
126*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
127*b1cdbd2cSJim Jagielski 	return nValue;
128*b1cdbd2cSJim Jagielski }
129*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxStatementLength()130*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatementLength(  ) throw(SQLException, RuntimeException)
131*b1cdbd2cSJim Jagielski {
132*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
133*b1cdbd2cSJim Jagielski 	return nValue;
134*b1cdbd2cSJim Jagielski }
135*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxTableNameLength()136*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTableNameLength(  ) throw(SQLException, RuntimeException)
137*b1cdbd2cSJim Jagielski {
138*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
139*b1cdbd2cSJim Jagielski 	return nValue;
140*b1cdbd2cSJim Jagielski }
141*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxTablesInSelect()142*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTablesInSelect(  ) throw(SQLException, RuntimeException)
143*b1cdbd2cSJim Jagielski {
144*b1cdbd2cSJim Jagielski 	// MaxTablesInSelect describes how many tables can participate in the FROM part of a given SELECT statement,
145*b1cdbd2cSJim Jagielski 	// currently, the resultset/statement implementations can cope with one table only
146*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 1;
147*b1cdbd2cSJim Jagielski 	return nValue;
148*b1cdbd2cSJim Jagielski }
149*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
doesMaxRowSizeIncludeBlobs()150*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::doesMaxRowSizeIncludeBlobs(  ) throw(SQLException, RuntimeException)
151*b1cdbd2cSJim Jagielski {
152*b1cdbd2cSJim Jagielski 	return sal_False;
153*b1cdbd2cSJim Jagielski }
154*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseQuotedIdentifiers()155*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
156*b1cdbd2cSJim Jagielski {
157*b1cdbd2cSJim Jagielski 	return sal_False;
158*b1cdbd2cSJim Jagielski }
159*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesLowerCaseIdentifiers()160*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseIdentifiers(  ) throw(SQLException, RuntimeException)
161*b1cdbd2cSJim Jagielski {
162*b1cdbd2cSJim Jagielski 	return sal_False;
163*b1cdbd2cSJim Jagielski }
164*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesMixedCaseQuotedIdentifiers()165*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
166*b1cdbd2cSJim Jagielski {
167*b1cdbd2cSJim Jagielski 	return sal_False;
168*b1cdbd2cSJim Jagielski }
169*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesMixedCaseIdentifiers()170*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
171*b1cdbd2cSJim Jagielski {
172*b1cdbd2cSJim Jagielski 	return sal_False;
173*b1cdbd2cSJim Jagielski }
174*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseQuotedIdentifiers()175*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
176*b1cdbd2cSJim Jagielski {
177*b1cdbd2cSJim Jagielski 	return sal_False;
178*b1cdbd2cSJim Jagielski }
179*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
storesUpperCaseIdentifiers()180*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseIdentifiers(  ) throw(SQLException, RuntimeException)
181*b1cdbd2cSJim Jagielski {
182*b1cdbd2cSJim Jagielski 	return sal_False;
183*b1cdbd2cSJim Jagielski }
184*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsAlterTableWithAddColumn()185*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithAddColumn(  ) throw(SQLException, RuntimeException)
186*b1cdbd2cSJim Jagielski {
187*b1cdbd2cSJim Jagielski 	return sal_False;
188*b1cdbd2cSJim Jagielski }
189*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsAlterTableWithDropColumn()190*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithDropColumn(  ) throw(SQLException, RuntimeException)
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski 	return sal_False;
193*b1cdbd2cSJim Jagielski }
194*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxIndexLength()195*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxIndexLength(  ) throw(SQLException, RuntimeException)
196*b1cdbd2cSJim Jagielski {
197*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
198*b1cdbd2cSJim Jagielski 	return nValue;
199*b1cdbd2cSJim Jagielski }
200*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsNonNullableColumns()201*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsNonNullableColumns(  ) throw(SQLException, RuntimeException)
202*b1cdbd2cSJim Jagielski {
203*b1cdbd2cSJim Jagielski 	return sal_False;
204*b1cdbd2cSJim Jagielski }
205*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogTerm()206*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogTerm(  ) throw(SQLException, RuntimeException)
207*b1cdbd2cSJim Jagielski {
208*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
209*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
210*b1cdbd2cSJim Jagielski 	{
211*b1cdbd2cSJim Jagielski 	}
212*b1cdbd2cSJim Jagielski 	return aVal;
213*b1cdbd2cSJim Jagielski }
214*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getIdentifierQuoteString()215*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getIdentifierQuoteString(  ) throw(SQLException, RuntimeException)
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski 	// normally this is "
218*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal = ::rtl::OUString::createFromAscii("\"");
219*b1cdbd2cSJim Jagielski 	return aVal;
220*b1cdbd2cSJim Jagielski }
221*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getExtraNameCharacters()222*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getExtraNameCharacters(  ) throw(SQLException, RuntimeException)
223*b1cdbd2cSJim Jagielski {
224*b1cdbd2cSJim Jagielski 	::rtl::OUString aVal;
225*b1cdbd2cSJim Jagielski 	return aVal;
226*b1cdbd2cSJim Jagielski }
227*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDifferentTableCorrelationNames()228*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsDifferentTableCorrelationNames(  ) throw(SQLException, RuntimeException)
229*b1cdbd2cSJim Jagielski {
230*b1cdbd2cSJim Jagielski 	return sal_False;
231*b1cdbd2cSJim Jagielski }
232*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
isCatalogAtStart()233*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::isCatalogAtStart(  ) throw(SQLException, RuntimeException)
234*b1cdbd2cSJim Jagielski {
235*b1cdbd2cSJim Jagielski 	sal_Bool bValue = sal_False;
236*b1cdbd2cSJim Jagielski 	if (m_bUseCatalog)
237*b1cdbd2cSJim Jagielski 	{
238*b1cdbd2cSJim Jagielski 	}
239*b1cdbd2cSJim Jagielski 	return bValue;
240*b1cdbd2cSJim Jagielski }
241*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionIgnoredInTransactions()242*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionIgnoredInTransactions(  ) throw(SQLException, RuntimeException)
243*b1cdbd2cSJim Jagielski {
244*b1cdbd2cSJim Jagielski 	return sal_True;
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
dataDefinitionCausesTransactionCommit()247*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionCausesTransactionCommit(  ) throw(SQLException, RuntimeException)
248*b1cdbd2cSJim Jagielski {
249*b1cdbd2cSJim Jagielski 	return sal_True;
250*b1cdbd2cSJim Jagielski }
251*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataManipulationTransactionsOnly()252*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataManipulationTransactionsOnly(  ) throw(SQLException, RuntimeException)
253*b1cdbd2cSJim Jagielski {
254*b1cdbd2cSJim Jagielski 	return sal_True;
255*b1cdbd2cSJim Jagielski }
256*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsDataDefinitionAndDataManipulationTransactions()257*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions(  ) throw(SQLException, RuntimeException)
258*b1cdbd2cSJim Jagielski {
259*b1cdbd2cSJim Jagielski 	return sal_True;
260*b1cdbd2cSJim Jagielski }
261*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedDelete()262*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedDelete(  ) throw(SQLException, RuntimeException)
263*b1cdbd2cSJim Jagielski {
264*b1cdbd2cSJim Jagielski 	return sal_False;
265*b1cdbd2cSJim Jagielski }
266*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsPositionedUpdate()267*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedUpdate(  ) throw(SQLException, RuntimeException)
268*b1cdbd2cSJim Jagielski {
269*b1cdbd2cSJim Jagielski 	return sal_False;
270*b1cdbd2cSJim Jagielski }
271*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossRollback()272*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossRollback(  ) throw(SQLException, RuntimeException)
273*b1cdbd2cSJim Jagielski {
274*b1cdbd2cSJim Jagielski 	return sal_False;
275*b1cdbd2cSJim Jagielski }
276*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenStatementsAcrossCommit()277*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossCommit(  ) throw(SQLException, RuntimeException)
278*b1cdbd2cSJim Jagielski {
279*b1cdbd2cSJim Jagielski 	return sal_False;
280*b1cdbd2cSJim Jagielski }
281*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossCommit()282*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossCommit(  ) throw(SQLException, RuntimeException)
283*b1cdbd2cSJim Jagielski {
284*b1cdbd2cSJim Jagielski 	return sal_False;
285*b1cdbd2cSJim Jagielski }
286*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOpenCursorsAcrossRollback()287*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossRollback(  ) throw(SQLException, RuntimeException)
288*b1cdbd2cSJim Jagielski {
289*b1cdbd2cSJim Jagielski 	return sal_False;
290*b1cdbd2cSJim Jagielski }
291*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactionIsolationLevel(sal_Int32)292*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 ) throw(SQLException, RuntimeException)
293*b1cdbd2cSJim Jagielski {
294*b1cdbd2cSJim Jagielski 	return sal_False;
295*b1cdbd2cSJim Jagielski }
296*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInDataManipulation()297*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInDataManipulation(  ) throw(SQLException, RuntimeException)
298*b1cdbd2cSJim Jagielski {
299*b1cdbd2cSJim Jagielski 	return sal_False;
300*b1cdbd2cSJim Jagielski }
301*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92FullSQL()302*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92FullSQL(  ) throw(SQLException, RuntimeException)
303*b1cdbd2cSJim Jagielski {
304*b1cdbd2cSJim Jagielski 	return sal_False;
305*b1cdbd2cSJim Jagielski }
306*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92EntryLevelSQL()307*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92EntryLevelSQL(  ) throw(SQLException, RuntimeException)
308*b1cdbd2cSJim Jagielski {
309*b1cdbd2cSJim Jagielski 	return sal_True; // should be supported at least
310*b1cdbd2cSJim Jagielski }
311*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsIntegrityEnhancementFacility()312*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsIntegrityEnhancementFacility(  ) throw(SQLException, RuntimeException)
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski 	return sal_False;
315*b1cdbd2cSJim Jagielski }
316*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInIndexDefinitions()317*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInIndexDefinitions(  ) throw(SQLException, RuntimeException)
318*b1cdbd2cSJim Jagielski {
319*b1cdbd2cSJim Jagielski 	return sal_False;
320*b1cdbd2cSJim Jagielski }
321*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInTableDefinitions()322*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInTableDefinitions(  ) throw(SQLException, RuntimeException)
323*b1cdbd2cSJim Jagielski {
324*b1cdbd2cSJim Jagielski 	return sal_False;
325*b1cdbd2cSJim Jagielski }
326*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInTableDefinitions()327*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInTableDefinitions(  ) throw(SQLException, RuntimeException)
328*b1cdbd2cSJim Jagielski {
329*b1cdbd2cSJim Jagielski 	return sal_False;
330*b1cdbd2cSJim Jagielski }
331*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInIndexDefinitions()332*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInIndexDefinitions(  ) throw(SQLException, RuntimeException)
333*b1cdbd2cSJim Jagielski {
334*b1cdbd2cSJim Jagielski 	return sal_False;
335*b1cdbd2cSJim Jagielski }
336*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInDataManipulation()337*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInDataManipulation(  ) throw(SQLException, RuntimeException)
338*b1cdbd2cSJim Jagielski {
339*b1cdbd2cSJim Jagielski 	return sal_False;
340*b1cdbd2cSJim Jagielski }
341*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOuterJoins()342*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOuterJoins(  ) throw(SQLException, RuntimeException)
343*b1cdbd2cSJim Jagielski {
344*b1cdbd2cSJim Jagielski 	return sal_False;
345*b1cdbd2cSJim Jagielski }
346*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxStatements()347*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatements(  ) throw(SQLException, RuntimeException)
348*b1cdbd2cSJim Jagielski {
349*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
350*b1cdbd2cSJim Jagielski 	return nValue;
351*b1cdbd2cSJim Jagielski }
352*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxProcedureNameLength()353*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxProcedureNameLength(  ) throw(SQLException, RuntimeException)
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
356*b1cdbd2cSJim Jagielski 	return nValue;
357*b1cdbd2cSJim Jagielski }
358*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxSchemaNameLength()359*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxSchemaNameLength(  ) throw(SQLException, RuntimeException)
360*b1cdbd2cSJim Jagielski {
361*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
362*b1cdbd2cSJim Jagielski 	return nValue;
363*b1cdbd2cSJim Jagielski }
364*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTransactions()365*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactions(  ) throw(SQLException, RuntimeException)
366*b1cdbd2cSJim Jagielski {
367*b1cdbd2cSJim Jagielski 	return sal_False;
368*b1cdbd2cSJim Jagielski }
369*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allProceduresAreCallable()370*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::allProceduresAreCallable(  ) throw(SQLException, RuntimeException)
371*b1cdbd2cSJim Jagielski {
372*b1cdbd2cSJim Jagielski 	return sal_False;
373*b1cdbd2cSJim Jagielski }
374*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsStoredProcedures()375*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsStoredProcedures(  ) throw(SQLException, RuntimeException)
376*b1cdbd2cSJim Jagielski {
377*b1cdbd2cSJim Jagielski 	return sal_False;
378*b1cdbd2cSJim Jagielski }
379*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSelectForUpdate()380*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSelectForUpdate(  ) throw(SQLException, RuntimeException)
381*b1cdbd2cSJim Jagielski {
382*b1cdbd2cSJim Jagielski 	return sal_False;
383*b1cdbd2cSJim Jagielski }
384*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
allTablesAreSelectable()385*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::allTablesAreSelectable(  ) throw(SQLException, RuntimeException)
386*b1cdbd2cSJim Jagielski {
387*b1cdbd2cSJim Jagielski 	return sal_False;
388*b1cdbd2cSJim Jagielski }
389*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
isReadOnly()390*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::isReadOnly(  ) throw(SQLException, RuntimeException)
391*b1cdbd2cSJim Jagielski {
392*b1cdbd2cSJim Jagielski 	// for the moment, we have read-only addresses, but this might change in the future
393*b1cdbd2cSJim Jagielski 	return sal_True;
394*b1cdbd2cSJim Jagielski }
395*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFiles()396*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFiles(  ) throw(SQLException, RuntimeException)
397*b1cdbd2cSJim Jagielski {
398*b1cdbd2cSJim Jagielski 	return sal_False;
399*b1cdbd2cSJim Jagielski }
400*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
usesLocalFilePerTable()401*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFilePerTable(  ) throw(SQLException, RuntimeException)
402*b1cdbd2cSJim Jagielski {
403*b1cdbd2cSJim Jagielski 	return sal_False;
404*b1cdbd2cSJim Jagielski }
405*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTypeConversion()406*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsTypeConversion(  ) throw(SQLException, RuntimeException)
407*b1cdbd2cSJim Jagielski {
408*b1cdbd2cSJim Jagielski 	return sal_False;
409*b1cdbd2cSJim Jagielski }
410*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullPlusNonNullIsNull()411*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::nullPlusNonNullIsNull(  ) throw(SQLException, RuntimeException)
412*b1cdbd2cSJim Jagielski {
413*b1cdbd2cSJim Jagielski 	return sal_False;
414*b1cdbd2cSJim Jagielski }
415*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsColumnAliasing()416*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsColumnAliasing(  ) throw(SQLException, RuntimeException)
417*b1cdbd2cSJim Jagielski {
418*b1cdbd2cSJim Jagielski 	return sal_False;
419*b1cdbd2cSJim Jagielski }
420*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsTableCorrelationNames()421*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsTableCorrelationNames(  ) throw(SQLException, RuntimeException)
422*b1cdbd2cSJim Jagielski {
423*b1cdbd2cSJim Jagielski 	return sal_False;
424*b1cdbd2cSJim Jagielski }
425*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsConvert(sal_Int32,sal_Int32)426*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsConvert( sal_Int32, sal_Int32 ) throw(SQLException, RuntimeException)
427*b1cdbd2cSJim Jagielski {
428*b1cdbd2cSJim Jagielski 	return sal_False;
429*b1cdbd2cSJim Jagielski }
430*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExpressionsInOrderBy()431*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsExpressionsInOrderBy(  ) throw(SQLException, RuntimeException)
432*b1cdbd2cSJim Jagielski {
433*b1cdbd2cSJim Jagielski 	return sal_False;
434*b1cdbd2cSJim Jagielski }
435*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupBy()436*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupBy(  ) throw(SQLException, RuntimeException)
437*b1cdbd2cSJim Jagielski {
438*b1cdbd2cSJim Jagielski 	return sal_False;
439*b1cdbd2cSJim Jagielski }
440*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByBeyondSelect()441*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByBeyondSelect(  ) throw(SQLException, RuntimeException)
442*b1cdbd2cSJim Jagielski {
443*b1cdbd2cSJim Jagielski 	return sal_False;
444*b1cdbd2cSJim Jagielski }
445*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsGroupByUnrelated()446*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByUnrelated(  ) throw(SQLException, RuntimeException)
447*b1cdbd2cSJim Jagielski {
448*b1cdbd2cSJim Jagielski 	return sal_False;
449*b1cdbd2cSJim Jagielski }
450*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleTransactions()451*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleTransactions(  ) throw(SQLException, RuntimeException)
452*b1cdbd2cSJim Jagielski {
453*b1cdbd2cSJim Jagielski 	return sal_False;
454*b1cdbd2cSJim Jagielski }
455*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMultipleResultSets()456*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleResultSets(  ) throw(SQLException, RuntimeException)
457*b1cdbd2cSJim Jagielski {
458*b1cdbd2cSJim Jagielski 	return sal_False;
459*b1cdbd2cSJim Jagielski }
460*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLikeEscapeClause()461*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsLikeEscapeClause(  ) throw(SQLException, RuntimeException)
462*b1cdbd2cSJim Jagielski {
463*b1cdbd2cSJim Jagielski 	return sal_False;
464*b1cdbd2cSJim Jagielski }
465*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsOrderByUnrelated()466*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsOrderByUnrelated(  ) throw(SQLException, RuntimeException)
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski 	return sal_False;
469*b1cdbd2cSJim Jagielski }
470*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnion()471*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnion(  ) throw(SQLException, RuntimeException)
472*b1cdbd2cSJim Jagielski {
473*b1cdbd2cSJim Jagielski 	return sal_False;
474*b1cdbd2cSJim Jagielski }
475*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsUnionAll()476*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnionAll(  ) throw(SQLException, RuntimeException)
477*b1cdbd2cSJim Jagielski {
478*b1cdbd2cSJim Jagielski 	return sal_False;
479*b1cdbd2cSJim Jagielski }
480*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMixedCaseIdentifiers()481*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseIdentifiers(  ) throw(SQLException, RuntimeException)
482*b1cdbd2cSJim Jagielski {
483*b1cdbd2cSJim Jagielski 	return sal_False;
484*b1cdbd2cSJim Jagielski }
485*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMixedCaseQuotedIdentifiers()486*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseQuotedIdentifiers(  ) throw(SQLException, RuntimeException)
487*b1cdbd2cSJim Jagielski {
488*b1cdbd2cSJim Jagielski 	return sal_False;
489*b1cdbd2cSJim Jagielski }
490*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtEnd()491*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtEnd(  ) throw(SQLException, RuntimeException)
492*b1cdbd2cSJim Jagielski {
493*b1cdbd2cSJim Jagielski 	return sal_False;
494*b1cdbd2cSJim Jagielski }
495*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedAtStart()496*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtStart(  ) throw(SQLException, RuntimeException)
497*b1cdbd2cSJim Jagielski {
498*b1cdbd2cSJim Jagielski 	return sal_False;
499*b1cdbd2cSJim Jagielski }
500*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedHigh()501*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedHigh(  ) throw(SQLException, RuntimeException)
502*b1cdbd2cSJim Jagielski {
503*b1cdbd2cSJim Jagielski 	return sal_False;
504*b1cdbd2cSJim Jagielski }
505*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
nullsAreSortedLow()506*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedLow(  ) throw(SQLException, RuntimeException)
507*b1cdbd2cSJim Jagielski {
508*b1cdbd2cSJim Jagielski 	return sal_False;
509*b1cdbd2cSJim Jagielski }
510*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInProcedureCalls()511*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInProcedureCalls(  ) throw(SQLException, RuntimeException)
512*b1cdbd2cSJim Jagielski {
513*b1cdbd2cSJim Jagielski 	return sal_False;
514*b1cdbd2cSJim Jagielski }
515*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSchemasInPrivilegeDefinitions()516*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
517*b1cdbd2cSJim Jagielski {
518*b1cdbd2cSJim Jagielski 	return sal_False;
519*b1cdbd2cSJim Jagielski }
520*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInProcedureCalls()521*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInProcedureCalls(  ) throw(SQLException, RuntimeException)
522*b1cdbd2cSJim Jagielski {
523*b1cdbd2cSJim Jagielski 	return sal_False;
524*b1cdbd2cSJim Jagielski }
525*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCatalogsInPrivilegeDefinitions()526*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions(  ) throw(SQLException, RuntimeException)
527*b1cdbd2cSJim Jagielski {
528*b1cdbd2cSJim Jagielski 	return sal_False;
529*b1cdbd2cSJim Jagielski }
530*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCorrelatedSubqueries()531*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCorrelatedSubqueries(  ) throw(SQLException, RuntimeException)
532*b1cdbd2cSJim Jagielski {
533*b1cdbd2cSJim Jagielski 	return sal_False;
534*b1cdbd2cSJim Jagielski }
535*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInComparisons()536*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInComparisons(  ) throw(SQLException, RuntimeException)
537*b1cdbd2cSJim Jagielski {
538*b1cdbd2cSJim Jagielski 	return sal_False;
539*b1cdbd2cSJim Jagielski }
540*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInExists()541*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInExists(  ) throw(SQLException, RuntimeException)
542*b1cdbd2cSJim Jagielski {
543*b1cdbd2cSJim Jagielski 	return sal_False;
544*b1cdbd2cSJim Jagielski }
545*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInIns()546*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInIns(  ) throw(SQLException, RuntimeException)
547*b1cdbd2cSJim Jagielski {
548*b1cdbd2cSJim Jagielski 	return sal_False;
549*b1cdbd2cSJim Jagielski }
550*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsSubqueriesInQuantifieds()551*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInQuantifieds(  ) throw(SQLException, RuntimeException)
552*b1cdbd2cSJim Jagielski {
553*b1cdbd2cSJim Jagielski 	return sal_False;
554*b1cdbd2cSJim Jagielski }
555*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsANSI92IntermediateSQL()556*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92IntermediateSQL(  ) throw(SQLException, RuntimeException)
557*b1cdbd2cSJim Jagielski {
558*b1cdbd2cSJim Jagielski 	return sal_False;
559*b1cdbd2cSJim Jagielski }
560*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getURL()561*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getURL(  ) throw(SQLException, RuntimeException)
562*b1cdbd2cSJim Jagielski {
563*b1cdbd2cSJim Jagielski 	// if someday we support more than the default address book,
564*b1cdbd2cSJim Jagielski 	// this method should return the URL which was used to create it
565*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:address:kab:");
566*b1cdbd2cSJim Jagielski 	return aValue;
567*b1cdbd2cSJim Jagielski }
568*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUserName()569*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getUserName(  ) throw(SQLException, RuntimeException)
570*b1cdbd2cSJim Jagielski {
571*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
572*b1cdbd2cSJim Jagielski 	return aValue;
573*b1cdbd2cSJim Jagielski }
574*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverName()575*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverName(  ) throw(SQLException, RuntimeException)
576*b1cdbd2cSJim Jagielski {
577*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii("kab");
578*b1cdbd2cSJim Jagielski 	return aValue;
579*b1cdbd2cSJim Jagielski }
580*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverVersion()581*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException)
582*b1cdbd2cSJim Jagielski {
583*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue = ::rtl::OUString::createFromAscii(KAB_DRIVER_VERSION);
584*b1cdbd2cSJim Jagielski 	return aValue;
585*b1cdbd2cSJim Jagielski }
586*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductVersion()587*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductVersion(  ) throw(SQLException, RuntimeException)
588*b1cdbd2cSJim Jagielski {
589*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
590*b1cdbd2cSJim Jagielski 	return aValue;
591*b1cdbd2cSJim Jagielski }
592*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDatabaseProductName()593*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductName(  ) throw(SQLException, RuntimeException)
594*b1cdbd2cSJim Jagielski {
595*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
596*b1cdbd2cSJim Jagielski 	return aValue;
597*b1cdbd2cSJim Jagielski }
598*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedureTerm()599*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getProcedureTerm(  ) throw(SQLException, RuntimeException)
600*b1cdbd2cSJim Jagielski {
601*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
602*b1cdbd2cSJim Jagielski 	return aValue;
603*b1cdbd2cSJim Jagielski }
604*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSchemaTerm()605*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSchemaTerm(  ) throw(SQLException, RuntimeException)
606*b1cdbd2cSJim Jagielski {
607*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
608*b1cdbd2cSJim Jagielski 	return aValue;
609*b1cdbd2cSJim Jagielski }
610*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMajorVersion()611*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMajorVersion(  ) throw(RuntimeException)
612*b1cdbd2cSJim Jagielski {
613*b1cdbd2cSJim Jagielski 	return KAB_DRIVER_VERSION_MAJOR;
614*b1cdbd2cSJim Jagielski }
615*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDefaultTransactionIsolation()616*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getDefaultTransactionIsolation(  ) throw(SQLException, RuntimeException)
617*b1cdbd2cSJim Jagielski {
618*b1cdbd2cSJim Jagielski 	return TransactionIsolation::NONE;
619*b1cdbd2cSJim Jagielski }
620*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getDriverMinorVersion()621*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMinorVersion(  ) throw(RuntimeException)
622*b1cdbd2cSJim Jagielski {
623*b1cdbd2cSJim Jagielski 	return KAB_DRIVER_VERSION_MINOR;
624*b1cdbd2cSJim Jagielski }
625*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSQLKeywords()626*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSQLKeywords(  ) throw(SQLException, RuntimeException)
627*b1cdbd2cSJim Jagielski {
628*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
629*b1cdbd2cSJim Jagielski 	return aValue;
630*b1cdbd2cSJim Jagielski }
631*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSearchStringEscape()632*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSearchStringEscape(  ) throw(SQLException, RuntimeException)
633*b1cdbd2cSJim Jagielski {
634*b1cdbd2cSJim Jagielski 	::rtl::OUString aValue;
635*b1cdbd2cSJim Jagielski 	return aValue;
636*b1cdbd2cSJim Jagielski }
637*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getStringFunctions()638*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getStringFunctions(  ) throw(SQLException, RuntimeException)
639*b1cdbd2cSJim Jagielski {
640*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
641*b1cdbd2cSJim Jagielski }
642*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTimeDateFunctions()643*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getTimeDateFunctions(  ) throw(SQLException, RuntimeException)
644*b1cdbd2cSJim Jagielski {
645*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
646*b1cdbd2cSJim Jagielski }
647*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getSystemFunctions()648*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getSystemFunctions(  ) throw(SQLException, RuntimeException)
649*b1cdbd2cSJim Jagielski {
650*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
651*b1cdbd2cSJim Jagielski }
652*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getNumericFunctions()653*b1cdbd2cSJim Jagielski ::rtl::OUString SAL_CALL KabDatabaseMetaData::getNumericFunctions(  ) throw(SQLException, RuntimeException)
654*b1cdbd2cSJim Jagielski {
655*b1cdbd2cSJim Jagielski 	return ::rtl::OUString();
656*b1cdbd2cSJim Jagielski }
657*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsExtendedSQLGrammar()658*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsExtendedSQLGrammar(  ) throw(SQLException, RuntimeException)
659*b1cdbd2cSJim Jagielski {
660*b1cdbd2cSJim Jagielski 	return sal_False;
661*b1cdbd2cSJim Jagielski }
662*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsCoreSQLGrammar()663*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsCoreSQLGrammar(  ) throw(SQLException, RuntimeException)
664*b1cdbd2cSJim Jagielski {
665*b1cdbd2cSJim Jagielski 	return sal_False;
666*b1cdbd2cSJim Jagielski }
667*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsMinimumSQLGrammar()668*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsMinimumSQLGrammar(  ) throw(SQLException, RuntimeException)
669*b1cdbd2cSJim Jagielski {
670*b1cdbd2cSJim Jagielski 	return sal_True;
671*b1cdbd2cSJim Jagielski }
672*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsFullOuterJoins()673*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsFullOuterJoins(  ) throw(SQLException, RuntimeException)
674*b1cdbd2cSJim Jagielski {
675*b1cdbd2cSJim Jagielski 	return sal_False;
676*b1cdbd2cSJim Jagielski }
677*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsLimitedOuterJoins()678*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsLimitedOuterJoins(  ) throw(SQLException, RuntimeException)
679*b1cdbd2cSJim Jagielski {
680*b1cdbd2cSJim Jagielski 	return sal_False;
681*b1cdbd2cSJim Jagielski }
682*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInGroupBy()683*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInGroupBy(  ) throw(SQLException, RuntimeException)
684*b1cdbd2cSJim Jagielski {
685*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
686*b1cdbd2cSJim Jagielski 	return nValue;
687*b1cdbd2cSJim Jagielski }
688*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInOrderBy()689*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInOrderBy(  ) throw(SQLException, RuntimeException)
690*b1cdbd2cSJim Jagielski {
691*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
692*b1cdbd2cSJim Jagielski 	return nValue;
693*b1cdbd2cSJim Jagielski }
694*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxColumnsInSelect()695*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInSelect(  ) throw(SQLException, RuntimeException)
696*b1cdbd2cSJim Jagielski {
697*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
698*b1cdbd2cSJim Jagielski 	return nValue;
699*b1cdbd2cSJim Jagielski }
700*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getMaxUserNameLength()701*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxUserNameLength(  ) throw(SQLException, RuntimeException)
702*b1cdbd2cSJim Jagielski {
703*b1cdbd2cSJim Jagielski 	sal_Int32 nValue = 0; // 0 means no limit
704*b1cdbd2cSJim Jagielski 	return nValue;
705*b1cdbd2cSJim Jagielski }
706*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetType(sal_Int32 setType)707*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException)
708*b1cdbd2cSJim Jagielski {
709*b1cdbd2cSJim Jagielski 	switch (setType)
710*b1cdbd2cSJim Jagielski 	{
711*b1cdbd2cSJim Jagielski 		case ResultSetType::FORWARD_ONLY:
712*b1cdbd2cSJim Jagielski 		case ResultSetType::SCROLL_INSENSITIVE:
713*b1cdbd2cSJim Jagielski 			return sal_True;
714*b1cdbd2cSJim Jagielski 	}
715*b1cdbd2cSJim Jagielski 	return sal_False;
716*b1cdbd2cSJim Jagielski }
717*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsResultSetConcurrency(sal_Int32 setType,sal_Int32)718*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 ) throw(SQLException, RuntimeException)
719*b1cdbd2cSJim Jagielski {
720*b1cdbd2cSJim Jagielski 	switch (setType)
721*b1cdbd2cSJim Jagielski 	{
722*b1cdbd2cSJim Jagielski 		case ResultSetType::FORWARD_ONLY:
723*b1cdbd2cSJim Jagielski 		case ResultSetType::SCROLL_INSENSITIVE:
724*b1cdbd2cSJim Jagielski 			return sal_True;
725*b1cdbd2cSJim Jagielski 	}
726*b1cdbd2cSJim Jagielski 	return sal_False;
727*b1cdbd2cSJim Jagielski }
728*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownUpdatesAreVisible(sal_Int32)729*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
730*b1cdbd2cSJim Jagielski {
731*b1cdbd2cSJim Jagielski 	return sal_False;
732*b1cdbd2cSJim Jagielski }
733*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownDeletesAreVisible(sal_Int32)734*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
735*b1cdbd2cSJim Jagielski {
736*b1cdbd2cSJim Jagielski 	return sal_False;
737*b1cdbd2cSJim Jagielski }
738*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
ownInsertsAreVisible(sal_Int32)739*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
740*b1cdbd2cSJim Jagielski {
741*b1cdbd2cSJim Jagielski 	return sal_False;
742*b1cdbd2cSJim Jagielski }
743*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersUpdatesAreVisible(sal_Int32)744*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
745*b1cdbd2cSJim Jagielski {
746*b1cdbd2cSJim Jagielski 	return sal_False;
747*b1cdbd2cSJim Jagielski }
748*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersDeletesAreVisible(sal_Int32)749*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
750*b1cdbd2cSJim Jagielski {
751*b1cdbd2cSJim Jagielski 	return sal_False;
752*b1cdbd2cSJim Jagielski }
753*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
othersInsertsAreVisible(sal_Int32)754*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 ) throw(SQLException, RuntimeException)
755*b1cdbd2cSJim Jagielski {
756*b1cdbd2cSJim Jagielski 	return sal_False;
757*b1cdbd2cSJim Jagielski }
758*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
updatesAreDetected(sal_Int32)759*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::updatesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
760*b1cdbd2cSJim Jagielski {
761*b1cdbd2cSJim Jagielski 	return sal_False;
762*b1cdbd2cSJim Jagielski }
763*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
deletesAreDetected(sal_Int32)764*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::deletesAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
765*b1cdbd2cSJim Jagielski {
766*b1cdbd2cSJim Jagielski 	return sal_False;
767*b1cdbd2cSJim Jagielski }
768*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
insertsAreDetected(sal_Int32)769*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::insertsAreDetected( sal_Int32 ) throw(SQLException, RuntimeException)
770*b1cdbd2cSJim Jagielski {
771*b1cdbd2cSJim Jagielski 	return sal_False;
772*b1cdbd2cSJim Jagielski }
773*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
supportsBatchUpdates()774*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL KabDatabaseMetaData::supportsBatchUpdates(  ) throw(SQLException, RuntimeException)
775*b1cdbd2cSJim Jagielski {
776*b1cdbd2cSJim Jagielski 	return sal_False;
777*b1cdbd2cSJim Jagielski }
778*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getConnection()779*b1cdbd2cSJim Jagielski Reference< XConnection > SAL_CALL KabDatabaseMetaData::getConnection(  ) throw(SQLException, RuntimeException)
780*b1cdbd2cSJim Jagielski {
781*b1cdbd2cSJim Jagielski 	return (Reference< XConnection >) m_xConnection.get();
782*b1cdbd2cSJim Jagielski }
783*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTableTypes()784*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTableTypes(  ) throw(SQLException, RuntimeException)
785*b1cdbd2cSJim Jagielski {
786*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTableTypes);
787*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
788*b1cdbd2cSJim Jagielski 
789*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
790*b1cdbd2cSJim Jagielski 	static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
791*b1cdbd2cSJim Jagielski 
792*b1cdbd2cSJim Jagielski 	if (aRows.empty())
793*b1cdbd2cSJim Jagielski 	{
794*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(2);
795*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
796*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(aTable);
797*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
798*b1cdbd2cSJim Jagielski 	}
799*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
800*b1cdbd2cSJim Jagielski 	return xRef;
801*b1cdbd2cSJim Jagielski }
802*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTypeInfo()803*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTypeInfo(  ) throw(SQLException, RuntimeException)
804*b1cdbd2cSJim Jagielski {
805*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo);
806*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
807*b1cdbd2cSJim Jagielski 
808*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
809*b1cdbd2cSJim Jagielski 	if (aRows.empty())
810*b1cdbd2cSJim Jagielski 	{
811*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(19);
812*b1cdbd2cSJim Jagielski 
813*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
814*b1cdbd2cSJim Jagielski 		aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
815*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(DataType::CHAR);
816*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator((sal_Int32) 254);
817*b1cdbd2cSJim Jagielski 		aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
818*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
819*b1cdbd2cSJim Jagielski 		aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue();
820*b1cdbd2cSJim Jagielski 		aRow[7] = new ORowSetValueDecorator((sal_Int32) ColumnValue::NULLABLE);
821*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::get1Value();
822*b1cdbd2cSJim Jagielski 		aRow[9] = new ORowSetValueDecorator((sal_Int32) ColumnSearch::CHAR);
823*b1cdbd2cSJim Jagielski 		aRow[10] = ODatabaseMetaDataResultSet::get1Value();
824*b1cdbd2cSJim Jagielski 		aRow[11] = ODatabaseMetaDataResultSet::get0Value();
825*b1cdbd2cSJim Jagielski 		aRow[12] = ODatabaseMetaDataResultSet::get0Value();
826*b1cdbd2cSJim Jagielski 		aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
827*b1cdbd2cSJim Jagielski 		aRow[14] = ODatabaseMetaDataResultSet::get0Value();
828*b1cdbd2cSJim Jagielski 		aRow[15] = ODatabaseMetaDataResultSet::get0Value();
829*b1cdbd2cSJim Jagielski 		aRow[16] = ODatabaseMetaDataResultSet::getEmptyValue();
830*b1cdbd2cSJim Jagielski 		aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue();
831*b1cdbd2cSJim Jagielski 		aRow[18] = new ORowSetValueDecorator((sal_Int32) 10);
832*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
833*b1cdbd2cSJim Jagielski // Much more types might appear in KDE address books
834*b1cdbd2cSJim Jagielski // To be completed
835*b1cdbd2cSJim Jagielski 	}
836*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
837*b1cdbd2cSJim Jagielski 	return xRef;
838*b1cdbd2cSJim Jagielski }
839*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCatalogs()840*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCatalogs(  ) throw(SQLException, RuntimeException)
841*b1cdbd2cSJim Jagielski {
842*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCatalogs );
843*b1cdbd2cSJim Jagielski }
844*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
getSchemas()845*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getSchemas(  ) throw(SQLException, RuntimeException)
846*b1cdbd2cSJim Jagielski {
847*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eSchemas );
848*b1cdbd2cSJim Jagielski }
849*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumnPrivileges(const Any &,const::rtl::OUString &,const::rtl::OUString &,const::rtl::OUString &)850*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumnPrivileges(
851*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&,
852*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& ) throw(SQLException, RuntimeException)
853*b1cdbd2cSJim Jagielski {
854*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumnPrivileges );
855*b1cdbd2cSJim Jagielski }
856*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getColumns(const Any &,const::rtl::OUString &,const::rtl::OUString & tableNamePattern,const::rtl::OUString & columnNamePattern)857*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumns(
858*b1cdbd2cSJim Jagielski 	const Any&,
859*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
860*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& tableNamePattern,
861*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& columnNamePattern) throw(SQLException, RuntimeException)
862*b1cdbd2cSJim Jagielski {
863*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumns);
864*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
865*b1cdbd2cSJim Jagielski 
866*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet::ORows aRows;
867*b1cdbd2cSJim Jagielski 
868*b1cdbd2cSJim Jagielski 	if (match(tableNamePattern, getAddressBookTableName(), '\0'))
869*b1cdbd2cSJim Jagielski 	{
870*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(19);
871*b1cdbd2cSJim Jagielski 
872*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
873*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
874*b1cdbd2cSJim Jagielski 		aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
875*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(getAddressBookTableName());
876*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
877*b1cdbd2cSJim Jagielski 		aRow[9] = ODatabaseMetaDataResultSet::get0Value();
878*b1cdbd2cSJim Jagielski 		aRow[10] = new ORowSetValueDecorator((sal_Int32) 10);
879*b1cdbd2cSJim Jagielski 		aRow[11] = ODatabaseMetaDataResultSet::get1Value();
880*b1cdbd2cSJim Jagielski 		aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue();
881*b1cdbd2cSJim Jagielski 		aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
882*b1cdbd2cSJim Jagielski 		aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue();
883*b1cdbd2cSJim Jagielski 		aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue();
884*b1cdbd2cSJim Jagielski 		aRow[16] = new ORowSetValueDecorator((sal_Int32) 254);
885*b1cdbd2cSJim Jagielski 		aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
886*b1cdbd2cSJim Jagielski 
887*b1cdbd2cSJim Jagielski 		sal_Int32 nPosition = 1;
888*b1cdbd2cSJim Jagielski 		QString aQtName;
889*b1cdbd2cSJim Jagielski 		::rtl::OUString sName;
890*b1cdbd2cSJim Jagielski 
891*b1cdbd2cSJim Jagielski 		aQtName = ::KABC::Addressee::revisionLabel();
892*b1cdbd2cSJim Jagielski 		sName = (const sal_Unicode *) aQtName.ucs2();
893*b1cdbd2cSJim Jagielski 		if (match(columnNamePattern, sName, '\0'))
894*b1cdbd2cSJim Jagielski 		{
895*b1cdbd2cSJim Jagielski 			aRow[4] = new ORowSetValueDecorator(sName);
896*b1cdbd2cSJim Jagielski 			aRow[5] = new ORowSetValueDecorator(DataType::TIMESTAMP);
897*b1cdbd2cSJim Jagielski 			aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
898*b1cdbd2cSJim Jagielski 			aRow[17] = new ORowSetValueDecorator(nPosition++);
899*b1cdbd2cSJim Jagielski 			aRows.push_back(aRow);
900*b1cdbd2cSJim Jagielski 		}
901*b1cdbd2cSJim Jagielski 
902*b1cdbd2cSJim Jagielski 		::KABC::Field::List aFields = ::KABC::Field::allFields();
903*b1cdbd2cSJim Jagielski 		::KABC::Field::List::iterator aField;
904*b1cdbd2cSJim Jagielski 
905*b1cdbd2cSJim Jagielski 		for (	aField = aFields.begin();
906*b1cdbd2cSJim Jagielski 				aField != aFields.end();
907*b1cdbd2cSJim Jagielski 				++aField, ++nPosition)
908*b1cdbd2cSJim Jagielski 		{
909*b1cdbd2cSJim Jagielski 			aQtName = (*aField)->label();
910*b1cdbd2cSJim Jagielski 			sName = (const sal_Unicode *) aQtName.ucs2();
911*b1cdbd2cSJim Jagielski 			if (match(columnNamePattern, sName, '\0'))
912*b1cdbd2cSJim Jagielski 			{
913*b1cdbd2cSJim Jagielski 				aRow[4] = new ORowSetValueDecorator(sName);
914*b1cdbd2cSJim Jagielski 				aRow[5] = new ORowSetValueDecorator(DataType::CHAR);
915*b1cdbd2cSJim Jagielski 				aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
916*b1cdbd2cSJim Jagielski 				aRow[7] = new ORowSetValueDecorator((sal_Int32) 256);
917*b1cdbd2cSJim Jagielski // Might be VARCHAR and not CHAR[256]...
918*b1cdbd2cSJim Jagielski 				aRow[17] = new ORowSetValueDecorator(nPosition);
919*b1cdbd2cSJim Jagielski 				aRows.push_back(aRow);
920*b1cdbd2cSJim Jagielski 			}
921*b1cdbd2cSJim Jagielski 		}
922*b1cdbd2cSJim Jagielski 	}
923*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
924*b1cdbd2cSJim Jagielski 	return xRef;
925*b1cdbd2cSJim Jagielski }
926*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTables(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<::rtl::OUString> & types)927*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTables(
928*b1cdbd2cSJim Jagielski 	const Any&,
929*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
930*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&,
931*b1cdbd2cSJim Jagielski 	const Sequence< ::rtl::OUString >& types) throw(SQLException, RuntimeException)
932*b1cdbd2cSJim Jagielski {
933*b1cdbd2cSJim Jagielski 	::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTables);
934*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
935*b1cdbd2cSJim Jagielski 
936*b1cdbd2cSJim Jagielski 	// check whether we have tables in the requested types
937*b1cdbd2cSJim Jagielski 	// for the moment, we answer only the "TABLE" table type
938*b1cdbd2cSJim Jagielski 	// when no types are given at all, we return all the tables
939*b1cdbd2cSJim Jagielski 	static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
940*b1cdbd2cSJim Jagielski 	sal_Bool bTableFound = sal_False;
941*b1cdbd2cSJim Jagielski 	const ::rtl::OUString* p = types.getConstArray(),
942*b1cdbd2cSJim Jagielski 	                     * pEnd = p + types.getLength();
943*b1cdbd2cSJim Jagielski 
944*b1cdbd2cSJim Jagielski 	if (p == pEnd)
945*b1cdbd2cSJim Jagielski 	{
946*b1cdbd2cSJim Jagielski 		bTableFound = sal_True;
947*b1cdbd2cSJim Jagielski 	}
948*b1cdbd2cSJim Jagielski 	else while (p < pEnd)
949*b1cdbd2cSJim Jagielski 	{
950*b1cdbd2cSJim Jagielski 		if (match(*p, aTable, '\0'))
951*b1cdbd2cSJim Jagielski 		{
952*b1cdbd2cSJim Jagielski 			bTableFound = sal_True;
953*b1cdbd2cSJim Jagielski 			break;
954*b1cdbd2cSJim Jagielski 		}
955*b1cdbd2cSJim Jagielski 		p++;
956*b1cdbd2cSJim Jagielski 	}
957*b1cdbd2cSJim Jagielski 	if (!bTableFound)
958*b1cdbd2cSJim Jagielski 		return xRef;
959*b1cdbd2cSJim Jagielski 
960*b1cdbd2cSJim Jagielski 	static ODatabaseMetaDataResultSet::ORows aRows;
961*b1cdbd2cSJim Jagielski 
962*b1cdbd2cSJim Jagielski 	if (aRows.empty())
963*b1cdbd2cSJim Jagielski 	{
964*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow(6);
965*b1cdbd2cSJim Jagielski 
966*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
967*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
968*b1cdbd2cSJim Jagielski 		aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
969*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(getAddressBookTableName());
970*b1cdbd2cSJim Jagielski 		aRow[4] = new ORowSetValueDecorator(aTable);
971*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue();
972*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
973*b1cdbd2cSJim Jagielski 	}
974*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
975*b1cdbd2cSJim Jagielski 	return xRef;
976*b1cdbd2cSJim Jagielski }
977*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedureColumns(const Any &,const::rtl::OUString &,const::rtl::OUString &,const::rtl::OUString &)978*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedureColumns(
979*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
980*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
981*b1cdbd2cSJim Jagielski {
982*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedureColumns );
983*b1cdbd2cSJim Jagielski }
984*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getProcedures(const Any &,const::rtl::OUString &,const::rtl::OUString &)985*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedures(
986*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
987*b1cdbd2cSJim Jagielski 	const ::rtl::OUString& ) throw(SQLException, RuntimeException)
988*b1cdbd2cSJim Jagielski {
989*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eProcedures );
990*b1cdbd2cSJim Jagielski }
991*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getVersionColumns(const Any &,const::rtl::OUString &,const::rtl::OUString & table)992*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getVersionColumns(
993*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
994*b1cdbd2cSJim Jagielski {
995*b1cdbd2cSJim Jagielski     ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eVersionColumns);
996*b1cdbd2cSJim Jagielski 
997*b1cdbd2cSJim Jagielski 	Reference< XResultSet > xRef = pResult;
998*b1cdbd2cSJim Jagielski 
999*b1cdbd2cSJim Jagielski 	ODatabaseMetaDataResultSet::ORows aRows;
1000*b1cdbd2cSJim Jagielski 
1001*b1cdbd2cSJim Jagielski 	if (table == getAddressBookTableName())
1002*b1cdbd2cSJim Jagielski 	{
1003*b1cdbd2cSJim Jagielski 		ODatabaseMetaDataResultSet::ORow aRow( 9 );
1004*b1cdbd2cSJim Jagielski 		QString aQtName = ::KABC::Addressee::revisionLabel();
1005*b1cdbd2cSJim Jagielski 		::rtl::OUString sName = (const sal_Unicode *) aQtName.ucs2();
1006*b1cdbd2cSJim Jagielski 
1007*b1cdbd2cSJim Jagielski 		aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
1008*b1cdbd2cSJim Jagielski 		aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
1009*b1cdbd2cSJim Jagielski 
1010*b1cdbd2cSJim Jagielski 		aRow[2] = new ORowSetValueDecorator(sName);
1011*b1cdbd2cSJim Jagielski 		aRow[3] = new ORowSetValueDecorator(DataType::TIMESTAMP);
1012*b1cdbd2cSJim Jagielski 		aRow[4] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TIMESTAMP"));
1013*b1cdbd2cSJim Jagielski 
1014*b1cdbd2cSJim Jagielski 		aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue();
1015*b1cdbd2cSJim Jagielski 		aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue();
1016*b1cdbd2cSJim Jagielski 		aRow[7] = ODatabaseMetaDataResultSet::getEmptyValue();
1017*b1cdbd2cSJim Jagielski 		aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
1018*b1cdbd2cSJim Jagielski 
1019*b1cdbd2cSJim Jagielski 		aRows.push_back(aRow);
1020*b1cdbd2cSJim Jagielski 	}
1021*b1cdbd2cSJim Jagielski 	pResult->setRows(aRows);
1022*b1cdbd2cSJim Jagielski 	return xRef;
1023*b1cdbd2cSJim Jagielski }
1024*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getExportedKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1025*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getExportedKeys(
1026*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1027*b1cdbd2cSJim Jagielski {
1028*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eExportedKeys );
1029*b1cdbd2cSJim Jagielski }
1030*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getImportedKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1031*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getImportedKeys(
1032*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1033*b1cdbd2cSJim Jagielski {
1034*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eImportedKeys );
1035*b1cdbd2cSJim Jagielski }
1036*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getPrimaryKeys(const Any &,const::rtl::OUString &,const::rtl::OUString &)1037*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getPrimaryKeys(
1038*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1039*b1cdbd2cSJim Jagielski {
1040*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::ePrimaryKeys );
1041*b1cdbd2cSJim Jagielski }
1042*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getIndexInfo(const Any &,const::rtl::OUString &,const::rtl::OUString &,sal_Bool,sal_Bool)1043*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getIndexInfo(
1044*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&,
1045*b1cdbd2cSJim Jagielski 	sal_Bool, sal_Bool ) throw(SQLException, RuntimeException)
1046*b1cdbd2cSJim Jagielski {
1047*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eIndexInfo );
1048*b1cdbd2cSJim Jagielski }
1049*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getBestRowIdentifier(const Any &,const::rtl::OUString &,const::rtl::OUString &,sal_Int32,sal_Bool)1050*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getBestRowIdentifier(
1051*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString&, sal_Int32,
1052*b1cdbd2cSJim Jagielski 	sal_Bool ) throw(SQLException, RuntimeException)
1053*b1cdbd2cSJim Jagielski {
1054*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eBestRowIdentifier );
1055*b1cdbd2cSJim Jagielski }
1056*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getTablePrivileges(const Any &,const::rtl::OUString &,const::rtl::OUString &)1057*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTablePrivileges(
1058*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1059*b1cdbd2cSJim Jagielski {
1060*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eTablePrivileges );
1061*b1cdbd2cSJim Jagielski }
1062*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getCrossReference(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Any &,const::rtl::OUString &,const::rtl::OUString &)1063*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCrossReference(
1064*b1cdbd2cSJim Jagielski 	const Any&, const ::rtl::OUString&,
1065*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const Any&,
1066*b1cdbd2cSJim Jagielski 	const ::rtl::OUString&, const ::rtl::OUString& ) throw(SQLException, RuntimeException)
1067*b1cdbd2cSJim Jagielski {
1068*b1cdbd2cSJim Jagielski     return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eCrossReference );
1069*b1cdbd2cSJim Jagielski }
1070*b1cdbd2cSJim Jagielski // -------------------------------------------------------------------------
getUDTs(const Any &,const::rtl::OUString &,const::rtl::OUString &,const Sequence<sal_Int32> &)1071*b1cdbd2cSJim Jagielski Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getUDTs( const Any&, const ::rtl::OUString&, const ::rtl::OUString&, const Sequence< sal_Int32 >& ) throw(SQLException, RuntimeException)
1072*b1cdbd2cSJim Jagielski {
1073*b1cdbd2cSJim Jagielski 	OSL_ENSURE(0,"Not implemented yet!");
1074*b1cdbd2cSJim Jagielski 	throw SQLException();
1075*b1cdbd2cSJim Jagielski }
1076*b1cdbd2cSJim Jagielski // -----------------------------------------------------------------------------
1077