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#ifndef __com_sun_star_sdbc_XStatement_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_sdbc_XStatement_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_sdbc_SQLException_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/sdbc/SQLException.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski module com {  module sun {  module star {  module sdbc {
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski published interface XConnection;
37*b1cdbd2cSJim Jagielski published interface XResultSet;
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski/** is used for executing a static SQL statement and obtaining the results
41*b1cdbd2cSJim Jagielski	produced by it.
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielski	<p>
46*b1cdbd2cSJim Jagielski	Only one ResultSet per Statement can be open at any point in
47*b1cdbd2cSJim Jagielski	time; therefore, if the reading of one ResultSet is interleaved
48*b1cdbd2cSJim Jagielski	with the reading of another, each must have been generated by
49*b1cdbd2cSJim Jagielski	different Statements. All statement
50*b1cdbd2cSJim Jagielski	<code>execute</code>
51*b1cdbd2cSJim Jagielski	methods implicitly
52*b1cdbd2cSJim Jagielski	close a statement's current ResultSet if an open one exists.
53*b1cdbd2cSJim Jagielski	</p>
54*b1cdbd2cSJim Jagielski */
55*b1cdbd2cSJim Jagielskipublished interface XStatement: com::sun::star::uno::XInterface
56*b1cdbd2cSJim Jagielski{
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielski	/** executes a SQL statement that returns a single ResultSet.
59*b1cdbd2cSJim Jagielski		@param sql
60*b1cdbd2cSJim Jagielski			the SQL statement which should be executed
61*b1cdbd2cSJim Jagielski		@returns
62*b1cdbd2cSJim Jagielski			a ResultSet that contains the data produced by the query; never <NULL/>
63*b1cdbd2cSJim Jagielski		@throws SQLException
64*b1cdbd2cSJim Jagielski			if a database access error occurs.
65*b1cdbd2cSJim Jagielski	 */
66*b1cdbd2cSJim Jagielski	XResultSet executeQuery([in]string sql) raises (SQLException);
67*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski	/** executes an SQL INSERT, UPDATE, or DELETE statement. In addition,
70*b1cdbd2cSJim Jagielski		SQL statements that return nothing, such as SQL DDL statements,
71*b1cdbd2cSJim Jagielski		can be executed.
72*b1cdbd2cSJim Jagielski
73*b1cdbd2cSJim Jagielski		@param sql
74*b1cdbd2cSJim Jagielski			a SQL INSERT, UPDATE or DELETE statement or a SQL statement that returns nothing
75*b1cdbd2cSJim Jagielski		@returns
76*b1cdbd2cSJim Jagielski			either the row count for INSERT, UPDATE or DELETE or 0 for SQL statements that return nothing
77*b1cdbd2cSJim Jagielski		@throws SQLException
78*b1cdbd2cSJim Jagielski			if a database access error occurs.
79*b1cdbd2cSJim Jagielski	 */
80*b1cdbd2cSJim Jagielski	long executeUpdate([in]string sql) raises (SQLException);
81*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski	/** executes a SQL statement that may return multiple results.
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski		<p>
87*b1cdbd2cSJim Jagielski		Under some (uncommon) situations a single SQL statement may return
88*b1cdbd2cSJim Jagielski		multiple result sets and/or update counts. Normally you can ignore
89*b1cdbd2cSJim Jagielski		this unless you are (1) executing a stored procedure that you know may
90*b1cdbd2cSJim Jagielski		return multiple results or (2) you are dynamically executing an
91*b1cdbd2cSJim Jagielski		unknown SQL string. The navigation through multiple results is covered by
92*b1cdbd2cSJim Jagielski		<type scope="com::sun::star::sdbc">XMultipleResults</type>.
93*b1cdbd2cSJim Jagielski		</p>
94*b1cdbd2cSJim Jagielski		<p>
95*b1cdbd2cSJim Jagielski		The
96*b1cdbd2cSJim Jagielski		<code>execute</code>
97*b1cdbd2cSJim Jagielski		method executes a SQL statement and indicates
98*b1cdbd2cSJim Jagielski		the form of the first result. You can then use
99*b1cdbd2cSJim Jagielski		<member scope="com::sun::star::sdbc">XStatement::getResultSet()</member>
100*b1cdbd2cSJim Jagielski		or
101*b1cdbd2cSJim Jagielski		<member scope="com::sun::star::sdbc">XStatement::getUpdateCount()</member>
102*b1cdbd2cSJim Jagielski		to retrieve the result, and
103*b1cdbd2cSJim Jagielski		<member scope="com::sun::star::sdbc">XStatement::getMoreResults()</member>
104*b1cdbd2cSJim Jagielski		to move to any subsequent result(s).
105*b1cdbd2cSJim Jagielski		</p>
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski		@param sql
108*b1cdbd2cSJim Jagielski			any SQL statement
109*b1cdbd2cSJim Jagielski		@returns
110*b1cdbd2cSJim Jagielski			<TRUE/> if the next result is a ResultSet; <FALSE/> if it is an update count or there are no more results
111*b1cdbd2cSJim Jagielski		@throws SQLException
112*b1cdbd2cSJim Jagielski			if a database access error occurs.
113*b1cdbd2cSJim Jagielski	 */
114*b1cdbd2cSJim Jagielski	boolean execute([in]string sql) raises (SQLException);
115*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim Jagielski	/** returns the
118*b1cdbd2cSJim Jagielski		<type scope="com::sun::star::sdbc">Connection</type>
119*b1cdbd2cSJim Jagielski		object
120*b1cdbd2cSJim Jagielski		that produced this
121*b1cdbd2cSJim Jagielski		<code>Statement</code>
122*b1cdbd2cSJim Jagielski		object.
123*b1cdbd2cSJim Jagielski		@returns
124*b1cdbd2cSJim Jagielski			the connection that produced this statement
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski		@throws SQLException
127*b1cdbd2cSJim Jagielski			if a database access error occurs.
128*b1cdbd2cSJim Jagielski	 */
129*b1cdbd2cSJim Jagielski	XConnection getConnection() raises (SQLException);
130*b1cdbd2cSJim Jagielski};
131*b1cdbd2cSJim Jagielski
132*b1cdbd2cSJim Jagielski//=============================================================================
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim Jagielski}; }; }; };
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielski/*===========================================================================
137*b1cdbd2cSJim Jagielski===========================================================================*/
138*b1cdbd2cSJim Jagielski#endif
139