1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_sdbc_XMultipleResults_idl__
28#define __com_sun_star_sdbc_XMultipleResults_idl__
29
30#ifndef __com_sun_star_uno_XInterface_idl__
31#include <com/sun/star/uno/XInterface.idl>
32#endif
33
34#ifndef __com_sun_star_sdbc_SQLException_idl__
35#include <com/sun/star/sdbc/SQLException.idl>
36#endif
37
38 module com {  module sun {  module star {  module sdbc {
39
40 published interface XResultSet;
41
42
43/** is used for inspecting multiple results produced by the execution of a
44	SQL statement.
45
46
47	<p>
48	Under some (uncommon) situations a single SQL statement may return
49	multiple result sets and/or update counts.  Normally you can ignore
50	this unless you are (1) executing a stored procedure that you know may
51	return multiple results or (2) you are dynamically executing an
52	unknown SQL string. The methods
53	<member scope="com::sun::star::sdbc">XMultipleResults::getMoreResults()</member>
54	,
55	<member scope="com::sun::star::sdbc">XMultipleResults::getResultSet()</member>
56	and
57	<member scope="com::sun::star::sdbc">XMultipleResults::getUpdateCount()</member>
58	let you navigate through multiple results.
59
60	</p>
61	@see com::sun::star::sdbc::XStatement
62	 @see com::sun::star::sdbc::XPreparedStatement
63 */
64published interface XMultipleResults: com::sun::star::uno::XInterface
65{
66
67	/** returns the current result as a
68		<type scope="com::sun::star::sdbc">ResultSet</type>
69		object.
70		This method should be called only once per result.
71		@returns
72			the ResultSet object
73		@throws SQLException
74			if a database access error occurs.
75	 */
76	XResultSet getResultSet() raises (SQLException);
77	//-------------------------------------------------------------------------
78
79	/** returns the current result as an update count.
80
81
82		<p>
83		If the result is a ResultSet or there are no more results, -1
84		is returned. This method should be called only once per result.
85		</p>
86		@returns
87			the current result as an update count.
88		@throws SQLException
89			if a database access error occurs.
90	 */
91	long getUpdateCount() raises (SQLException);
92    //-------------------------------------------------------------------------
93
94	/** moves to a Statement's next result. It returns <TRUE/> if
95		this result is a ResultSet.  This method also implicitly
96		closes any current ResultSet obtained with getResultSet.
97
98		<p>
99		There are no more results when <code>(!getMoreResults() &amp;amp;&amp;amp;
100		getUpdateCount() == -1)</code>.
101
102		</p>
103		@returns
104			<TRUE/> if there exists more ResultSet objects
105		@throws SQLException
106			if a database access error occurs.
107	 */
108	boolean getMoreResults() raises (SQLException);
109};
110
111//=============================================================================
112
113}; }; }; };
114
115/*===========================================================================
116===========================================================================*/
117#endif
118