xref: /aoo4110/main/offapi/com/sun/star/sdbc/Statement.idl (revision b1cdbd2c)
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_Statement_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_sdbc_Statement_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XComponent_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XComponent.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_XPropertySet_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/XPropertySet.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_util_XCancellable_idl__
35*b1cdbd2cSJim Jagielski#include <com/sun/star/util/XCancellable.idl>
36*b1cdbd2cSJim Jagielski#endif
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski module com {  module sun {  module star {  module sdbc {
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski published interface XWarningsSupplier;
41*b1cdbd2cSJim Jagielski published interface XStatement;
42*b1cdbd2cSJim Jagielski published interface XBatchExecution;
43*b1cdbd2cSJim Jagielski published interface XMultipleResults;
44*b1cdbd2cSJim Jagielski published interface XCloseable;
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim Jagielski/** is used for executing a static SQL statement and obtaining the results
48*b1cdbd2cSJim Jagielski	produced by it.
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski	<p>
51*b1cdbd2cSJim Jagielski	Only one ResultSet per Statement can be open at any point in
52*b1cdbd2cSJim Jagielski	time. Therefore, if the reading of one ResultSet is interleaved
53*b1cdbd2cSJim Jagielski	with the reading of another, each must have been generated by
54*b1cdbd2cSJim Jagielski	different Statements. All statement <code>execute</code> methods implicitly
55*b1cdbd2cSJim Jagielski	close a statement's current ResultSet if an open one exists.
56*b1cdbd2cSJim Jagielski	</p>
57*b1cdbd2cSJim Jagielski */
58*b1cdbd2cSJim Jagielskipublished service Statement
59*b1cdbd2cSJim Jagielski{
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim Jagielski	/** optional for implementation, controls the releasing of resources
62*b1cdbd2cSJim Jagielski			 and the notification of registered listeners.
63*b1cdbd2cSJim Jagielski	 */
64*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::lang::XComponent;
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski	/** freeing all resources of a statement. A related resultset will be
68*b1cdbd2cSJim Jagielski			 freed as well.
69*b1cdbd2cSJim Jagielski	 */
70*b1cdbd2cSJim Jagielski	interface XCloseable;
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski	// gives access to the properties.
73*b1cdbd2cSJim Jagielski	interface com::sun::star::beans::XPropertySet;
74*b1cdbd2cSJim Jagielski
75*b1cdbd2cSJim Jagielski	/** could be used for cancelling the execution of SQL statements if both
76*b1cdbd2cSJim Jagielski			 the DBMS and the driver support aborting an SQL statement.
77*b1cdbd2cSJim Jagielski			 The implementation is optional.
78*b1cdbd2cSJim Jagielski	 */
79*b1cdbd2cSJim Jagielski	[optional] interface com::sun::star::util::XCancellable;
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski	/** is the interface for executing SQL commands.
82*b1cdbd2cSJim Jagielski	 */
83*b1cdbd2cSJim Jagielski	interface XStatement;
84*b1cdbd2cSJim Jagielski
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski	/** provides the ability of batch execution. This interface is optional
87*b1cdbd2cSJim Jagielski			 for execution.
88*b1cdbd2cSJim Jagielski			 <p>
89*b1cdbd2cSJim Jagielski			 A driver implementing batch execution must return
90*b1cdbd2cSJim Jagielski			 <TRUE/>
91*b1cdbd2cSJim Jagielski			 for
92*b1cdbd2cSJim Jagielski			 <member scope= "com::sun::star::sdbc"> XDatabaseMetaData::supportsBatchUpdates()</member>
93*b1cdbd2cSJim Jagielski			 </p>
94*b1cdbd2cSJim Jagielski	 */
95*b1cdbd2cSJim Jagielski	[optional] interface XBatchExecution;
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski
98*b1cdbd2cSJim Jagielski	/** controls the chaining of warnings, which may occur on every call
99*b1cdbd2cSJim Jagielski			 to the connected database. Chained warnings from previous calls will be
100*b1cdbd2cSJim Jagielski			 cleared before processing a new call.
101*b1cdbd2cSJim Jagielski	 */
102*b1cdbd2cSJim Jagielski	interface XWarningsSupplier;
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski	/** covers the handling of multiple results after executing an SQL command.
106*b1cdbd2cSJim Jagielski				The implementation is optional.
107*b1cdbd2cSJim Jagielski	 */
108*b1cdbd2cSJim Jagielski	[optional] interface XMultipleResults;
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski
111*b1cdbd2cSJim Jagielski	/** retrieves the number of seconds the driver will wait for a Statement
112*b1cdbd2cSJim Jagielski		to execute. If the limit is exceeded, a SQLException is thrown.
113*b1cdbd2cSJim Jagielski		There is no limitation, if set to zero.
114*b1cdbd2cSJim Jagielski	 */
115*b1cdbd2cSJim Jagielski	[property] long QueryTimeOut;
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim Jagielski
118*b1cdbd2cSJim Jagielski	/**	 returns the maximum number of bytes allowed for any column value.
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim Jagielski		<p>
121*b1cdbd2cSJim Jagielski		This limit is the maximum number of bytes that can be returned
122*b1cdbd2cSJim Jagielski		for any column value. The limit applies only to
123*b1cdbd2cSJim Jagielski		<member scope= "com::sun::star::sdbc">DataType::BINARY</member>
124*b1cdbd2cSJim Jagielski			  ,
125*b1cdbd2cSJim Jagielski			  <member scope= "com::sun::star::sdbc">DataType::VARBINARY</member>
126*b1cdbd2cSJim Jagielski			  ,
127*b1cdbd2cSJim Jagielski			  <member scope= "com::sun::star::sdbc">DataType::LONGVARBINARY</member>
128*b1cdbd2cSJim Jagielski			  ,
129*b1cdbd2cSJim Jagielski			  <member scope= "com::sun::star::sdbc">DataType::CHAR</member>
130*b1cdbd2cSJim Jagielski			  ,
131*b1cdbd2cSJim Jagielski			  <member scope= "com::sun::star::sdbc">DataType::VARCHAR</member>
132*b1cdbd2cSJim Jagielski			  ,
133*b1cdbd2cSJim Jagielski			  and
134*b1cdbd2cSJim Jagielski			  <member scope= "com::sun::star::sdbc">DataType::LONGVARCHAR</member>
135*b1cdbd2cSJim Jagielski			  columns.
136*b1cdbd2cSJim Jagielski		If the limit is exceeded, the excess data is silently discarded.
137*b1cdbd2cSJim Jagielski		<br/>
138*b1cdbd2cSJim Jagielski		There is no limitation, if set to zero.
139*b1cdbd2cSJim Jagielski		</p>
140*b1cdbd2cSJim Jagielski	 */
141*b1cdbd2cSJim Jagielski	[property] long MaxFieldSize;
142*b1cdbd2cSJim Jagielski
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski	/** retrieves the maximum number of rows that a ResultSet can contain.
145*b1cdbd2cSJim Jagielski		If the limit is exceeded, the excess rows are silently dropped.
146*b1cdbd2cSJim Jagielski		<br/>
147*b1cdbd2cSJim Jagielski		There is no limitation, if set to zero.
148*b1cdbd2cSJim Jagielski	 */
149*b1cdbd2cSJim Jagielski	[property] long MaxRows;
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski	/** defines the SQL cursor name that will be used by subsequent Statement
153*b1cdbd2cSJim Jagielski		<code>execute</code>
154*b1cdbd2cSJim Jagielski		methods.
155*b1cdbd2cSJim Jagielski
156*b1cdbd2cSJim Jagielski		<p>
157*b1cdbd2cSJim Jagielski		This name can then be used in SQL positioned update/delete statements to
158*b1cdbd2cSJim Jagielski		identify the current row in the ResultSet generated by this statement. If
159*b1cdbd2cSJim Jagielski		the database does not support positioned update/delete, this property is
160*b1cdbd2cSJim Jagielski		a noop. To insure that a cursor has the proper isolation level to support
161*b1cdbd2cSJim Jagielski		updates, the cursor's SELECT statement should be of the form
162*b1cdbd2cSJim Jagielski		'select for update ...'. If the 'for update' phrase is omitted,
163*b1cdbd2cSJim Jagielski		positioned updates may fail.
164*b1cdbd2cSJim Jagielski		</p>
165*b1cdbd2cSJim Jagielski		<p>
166*b1cdbd2cSJim Jagielski		<b>
167*b1cdbd2cSJim Jagielski		Note:
168*b1cdbd2cSJim Jagielski		</b>
169*b1cdbd2cSJim Jagielski		By definition, positioned update/delete
170*b1cdbd2cSJim Jagielski		execution must be done by a different Statement than the one
171*b1cdbd2cSJim Jagielski		which generated the ResultSet being used for positioning. Also,
172*b1cdbd2cSJim Jagielski		cursor names must be unique within a connection.
173*b1cdbd2cSJim Jagielski		</p>
174*b1cdbd2cSJim Jagielski	 */
175*b1cdbd2cSJim Jagielski	[property] string CursorName;
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski
178*b1cdbd2cSJim Jagielski	/** retrieves the result set concurrency.
179*b1cdbd2cSJim Jagielski
180*b1cdbd2cSJim Jagielski		@see com::sun::star::sdbc::ResultSetConcurrency
181*b1cdbd2cSJim Jagielski	 */
182*b1cdbd2cSJim Jagielski	[property] long ResultSetConcurrency;
183*b1cdbd2cSJim Jagielski
184*b1cdbd2cSJim Jagielski
185*b1cdbd2cSJim Jagielski	/** determine the result set type.
186*b1cdbd2cSJim Jagielski
187*b1cdbd2cSJim Jagielski		@see com::sun::star::sdbc::ResultSetType
188*b1cdbd2cSJim Jagielski	 */
189*b1cdbd2cSJim Jagielski	[property] long ResultSetType;
190*b1cdbd2cSJim Jagielski
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski	/** retrieves the direction for fetching rows from database tables
193*b1cdbd2cSJim Jagielski		that is the default for result sets generated from this
194*b1cdbd2cSJim Jagielski		<code>Statement</code>
195*b1cdbd2cSJim Jagielski		object.
196*b1cdbd2cSJim Jagielski		<br/>
197*b1cdbd2cSJim Jagielski		If this
198*b1cdbd2cSJim Jagielski		<code>Statement</code>
199*b1cdbd2cSJim Jagielski		object has not set a fetch direction,
200*b1cdbd2cSJim Jagielski		the return value is implementation-specific.
201*b1cdbd2cSJim Jagielski	 */
202*b1cdbd2cSJim Jagielski	[property] long FetchDirection;
203*b1cdbd2cSJim Jagielski
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielski	/** retrieves the number of result set rows that is the default fetch size
206*b1cdbd2cSJim Jagielski		for result sets generated from this
207*b1cdbd2cSJim Jagielski		<code>Statement</code>
208*b1cdbd2cSJim Jagielski		object.
209*b1cdbd2cSJim Jagielski		<br/>
210*b1cdbd2cSJim Jagielski		If this
211*b1cdbd2cSJim Jagielski		<code>Statement</code>
212*b1cdbd2cSJim Jagielski		object has not set a fetch size,
213*b1cdbd2cSJim Jagielski		the return value is implementation-specific.
214*b1cdbd2cSJim Jagielski	 */
215*b1cdbd2cSJim Jagielski	[property] long FetchSize;
216*b1cdbd2cSJim Jagielski
217*b1cdbd2cSJim Jagielski
218*b1cdbd2cSJim Jagielski	/** returns if escape processing is on or off.
219*b1cdbd2cSJim Jagielski		If escape scanning is on (the default), the driver will do
220*b1cdbd2cSJim Jagielski		escape substitution before sending the SQL to the database.
221*b1cdbd2cSJim Jagielski	 */
222*b1cdbd2cSJim Jagielski	[property] boolean EscapeProcessing;
223*b1cdbd2cSJim Jagielski};
224*b1cdbd2cSJim Jagielski
225*b1cdbd2cSJim Jagielski//=============================================================================
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielski}; }; }; };
228*b1cdbd2cSJim Jagielski
229*b1cdbd2cSJim Jagielski#endif
230