xref: /trunk/main/offapi/com/sun/star/sdb/RowSet.idl (revision cdf0e10c)
1*cdf0e10cSrcweir/*************************************************************************
2*cdf0e10cSrcweir *
3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir *
5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir *
7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir *
9*cdf0e10cSrcweir * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir *
11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir *
15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir *
21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir *
26*cdf0e10cSrcweir ************************************************************************/
27*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_RowSet_idl__
28*cdf0e10cSrcweir#define __com_sun_star_sdb_RowSet_idl__
29*cdf0e10cSrcweir
30*cdf0e10cSrcweir#ifndef __com_sun_star_sdbc_RowSet_idl__
31*cdf0e10cSrcweir#include <com/sun/star/sdbc/RowSet.idl>
32*cdf0e10cSrcweir#endif
33*cdf0e10cSrcweir
34*cdf0e10cSrcweirmodule com {  module sun {  module star {  module sdbc {
35*cdf0e10cSrcweirpublished interface XConnection;
36*cdf0e10cSrcweir};};};};
37*cdf0e10cSrcweir
38*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_ResultSet_idl__
39*cdf0e10cSrcweir#include <com/sun/star/sdb/ResultSet.idl>
40*cdf0e10cSrcweir#endif
41*cdf0e10cSrcweir
42*cdf0e10cSrcweir#ifndef __com_sun_star_sdb_XCompletedExecution_idl__
43*cdf0e10cSrcweir#include <com/sun/star/sdb/XCompletedExecution.idl>
44*cdf0e10cSrcweir#endif
45*cdf0e10cSrcweir
46*cdf0e10cSrcweir module com {  module sun {  module star {  module sdbcx {
47*cdf0e10cSrcweirpublished interface XDeleteRows;
48*cdf0e10cSrcweir};};};};
49*cdf0e10cSrcweir
50*cdf0e10cSrcweir module com {  module sun {  module star {  module sdb {
51*cdf0e10cSrcweir
52*cdf0e10cSrcweirpublished interface XRowSetApproveBroadcaster;
53*cdf0e10cSrcweirpublished interface XResultSetAccess;
54*cdf0e10cSrcweirpublished interface XParametersSupplier;
55*cdf0e10cSrcweir
56*cdf0e10cSrcweir
57*cdf0e10cSrcweir/** is a client side RowSet, which use retrieves is data based on a database table,
58*cdf0e10cSrcweir	a query or a SQL command or by a rowset reader, who mustn't support SQL.
59*cdf0e10cSrcweir	The connection of the rowset is typically a named DataSource or a DataAccess component
60*cdf0e10cSrcweir	or a previous instanciated connection.
61*cdf0e10cSrcweir	<p>
62*cdf0e10cSrcweir	Depending on the
63*cdf0e10cSrcweir	<type scope="com::sun::star::sdbc">ResultSetConcurrency</type>
64*cdf0e10cSrcweir	, the RowSet caches all data or uses
65*cdf0e10cSrcweir	an optimized way for retrieving the data, such as, refetching rows by their keys or
66*cdf0e10cSrcweir	if provided, by their bookmarks.
67*cdf0e10cSrcweir	</p>
68*cdf0e10cSrcweir	<p>
69*cdf0e10cSrcweir	In addition, it provides events for RowSet navigation and RowSet modifications
70*cdf0e10cSrcweir	to approve the actions and to react on them.
71*cdf0e10cSrcweir	@see com::sun::star::sdb::RowChangeAction
72*cdf0e10cSrcweir	@see com::sun::star::sdb::RowChangeEvent
73*cdf0e10cSrcweir    @see com::sun::star::sdb::RowsChangeEvent
74*cdf0e10cSrcweir	</p>
75*cdf0e10cSrcweir
76*cdf0e10cSrcweir	<h3>Notifications</h3>
77*cdf0e10cSrcweir    <p>A row set is able to be operated in various ways, and additionally it notifies various changes in it's
78*cdf0e10cSrcweir	state. Clients of this service can rely on a fixed order of notifications, depending on how they operate
79*cdf0e10cSrcweir	on the component.</br>
80*cdf0e10cSrcweir	The following describes the general order of all possible notifications which you can encounter when
81*cdf0e10cSrcweir	working with a row set:
82*cdf0e10cSrcweir	<table>
83*cdf0e10cSrcweir		<tr><td valign="top"><em>approving</em></td>
84*cdf0e10cSrcweir			<td valign="top">Before anything really happens, any veto listeners are called to approve the operation
85*cdf0e10cSrcweir				which is just being done. This may be either a
86*cdf0e10cSrcweir				<member>XRowSetApproveListener::approveCursorMove</member> or
87*cdf0e10cSrcweir				<member>XRowSetApproveListener::approveRowChange</member> call.
88*cdf0e10cSrcweir				@see XRowSetApproveListener
89*cdf0e10cSrcweir			</td>
90*cdf0e10cSrcweir		</tr>
91*cdf0e10cSrcweir		<tr><td valign="top"><em>column values</em></td>
92*cdf0e10cSrcweir			<td valign="top">If the opration includes changes in the values of the columns of the row set, then these are
93*cdf0e10cSrcweir			notified before anything else (except requests for approval).
94*cdf0e10cSrcweir			@see ResultSet
95*cdf0e10cSrcweir			@see com::sun::star::sdbcx::XColumnsSupplier
96*cdf0e10cSrcweir			</td>
97*cdf0e10cSrcweir		</tr>
98*cdf0e10cSrcweir		<tr><td valign="top"><em>operation done</em></td>
99*cdf0e10cSrcweir			<td valign="top">When the operation is done, you get a notification about this. It may be a
100*cdf0e10cSrcweir			<member scope="com::sun::star::sdbc">XRowSetListener::cursorMoved</member> or a
101*cdf0e10cSrcweir			<member scope="com::sun::star::sdbc">XRowSetListener::rowChanged</member> call or a
102*cdf0e10cSrcweir            <member>XRowsChangeListener::rowsChanged</member> call.
103*cdf0e10cSrcweir			</td>
104*cdf0e10cSrcweir		</tr>
105*cdf0e10cSrcweir		<tr><td valign="top"><em>row state</em></td>
106*cdf0e10cSrcweir			<td valign="top">If the operation leads to a change in the state of the <member>IsModified</member>
107*cdf0e10cSrcweir			and/or <member>IsNew</member> property, this is notified next (in this order).
108*cdf0e10cSrcweir			</td>
109*cdf0e10cSrcweir		</tr>
110*cdf0e10cSrcweir		<tr><td valign="top"><em>row count</em></td>
111*cdf0e10cSrcweir			<td valign="top">If the operation leads to new knowledge about the number of rows in the result set,
112*cdf0e10cSrcweir			the respective changes in the <member>RowCount</member> and <member>IsRowCountFinal</member>
113*cdf0e10cSrcweir			are notified last (in this order).
114*cdf0e10cSrcweir			</td>
115*cdf0e10cSrcweir		</tr>
116*cdf0e10cSrcweir	</table>
117*cdf0e10cSrcweir	</p>
118*cdf0e10cSrcweir
119*cdf0e10cSrcweir	<br/>
120*cdf0e10cSrcweir
121*cdf0e10cSrcweir	<p>The following matrix shows the notifications which apply to the different operations:
122*cdf0e10cSrcweir	<table border="1" frame="all">
123*cdf0e10cSrcweir		<tr><td/><td><strong>approveCursorMove</strong></td><td><strong>approveRowChange</strong></td>
124*cdf0e10cSrcweir				<td><strong>column values</strong></td>
125*cdf0e10cSrcweir				<td><strong>cursorMoved</strong></td><td><strong>rowChanged</strong></td>
126*cdf0e10cSrcweir                <td><strong>rowsChanged</strong></td>
127*cdf0e10cSrcweir				<td><strong>IsModified</strong></td><td><strong>IsNew</strong></td>
128*cdf0e10cSrcweir				<td><strong>RowCount</strong></td><td><strong>IsRowCountFinal</strong></td>
129*cdf0e10cSrcweir		</tr>
130*cdf0e10cSrcweir
131*cdf0e10cSrcweir		<tr><td><type scope="com::sun::star::sdbc">XResultSet</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr>
132*cdf0e10cSrcweir
133*cdf0e10cSrcweir		<tr><td align="right"><em>next</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td>
134*cdf0e10cSrcweir		<tr><td align="right"><em>beforeFirst</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr>
135*cdf0e10cSrcweir		<tr><td align="right"><em>afterLast</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
136*cdf0e10cSrcweir		<tr><td align="right"><em>first</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
137*cdf0e10cSrcweir		<tr><td align="right"><em>last</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
138*cdf0e10cSrcweir		<tr><td align="right"><em>absolute</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
139*cdf0e10cSrcweir		<tr><td align="right"><em>relative</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
140*cdf0e10cSrcweir		<tr><td align="right"><em>previous</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
141*cdf0e10cSrcweir		<tr><td align="right"><em>refreshRow</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr>
142*cdf0e10cSrcweir		<tr><td align="right"><em>cancelRowUpdates</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td/><td/><td/></tr>
143*cdf0e10cSrcweir
144*cdf0e10cSrcweir		<tr><td><type scope="com::sun::star::sdbc">XResultSetUpdate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr>
145*cdf0e10cSrcweir
146*cdf0e10cSrcweir		<tr><td align="right"><em>insertRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
147*cdf0e10cSrcweir		<tr><td align="right"><em>updateRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td/><td/><td/></tr>
148*cdf0e10cSrcweir		<tr><td align="right"><em>deleteRow</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
149*cdf0e10cSrcweir		<tr><td align="right"><em>moveToInsertRow</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td></tr>
150*cdf0e10cSrcweir		<tr><td align="right"><em>moveToCurrentRow</em></td><td align="center">X</td><td/><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr>
151*cdf0e10cSrcweir
152*cdf0e10cSrcweir		<tr><td><type scope="com::sun::star::sdbcx">XDeleteRows</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr>
153*cdf0e10cSrcweir
154*cdf0e10cSrcweir		<tr><td align="right"><em>deleteRows</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
155*cdf0e10cSrcweir
156*cdf0e10cSrcweir		<tr><td><type scope="com::sun::star::sdbcx">XRowLocate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr>
157*cdf0e10cSrcweir
158*cdf0e10cSrcweir		<tr><td align="right"><em>moveToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr>
159*cdf0e10cSrcweir		<tr><td align="right"><em>moveRelativeToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr>
160*cdf0e10cSrcweir
161*cdf0e10cSrcweir		</tr>
162*cdf0e10cSrcweir	</table>
163*cdf0e10cSrcweir	</p>
164*cdf0e10cSrcweir
165*cdf0e10cSrcweir    <h3>Deletions</h3>
166*cdf0e10cSrcweir    <p>Via <member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member>, you can delete the current row of a
167*cdf0e10cSrcweir    <type>RowSet</type>. This deleted row then doesn't vanish immediately, but is still present, and subsequent calls to
168*cdf0e10cSrcweir    <member scope="com::sun::star::sdbc">XResultSet::rowDeleted</member> will return <TRUE/>. The deleted row "vanishes" from
169*cdf0e10cSrcweir    the <type>RowSet</type> as soon as the cursor is moved away from it.<br/>
170*cdf0e10cSrcweir    As a consequence, the behaviour of several other methods is affected:<br/>
171*cdf0e10cSrcweir	<dl>
172*cdf0e10cSrcweir        <dt><member scope="com::sun::star::sdbc">XResultSet::getRow</member></dt>
173*cdf0e10cSrcweir        <dd>returns the position of the cursor, which has not been changed by the deletion.</dd>
174*cdf0e10cSrcweir
175*cdf0e10cSrcweir        <dt><type scope="com::sun::star::sdbc">XResultSet</type>: <code>next</code>, <code>first</code>, <code>last</code>, <code>absolute</code>,
176*cdf0e10cSrcweir            <code>relative</code>, <code>previous</code>, <code>beforeFirst</code>, <code>afterLast</code></dt>
177*cdf0e10cSrcweir        <dd>will let the deleted row vanish from the result set. As a consequence, the <member>RowCount</member>
178*cdf0e10cSrcweir            will decrease when you do such a move operation after deleting a row.<br/>
179*cdf0e10cSrcweir            A special case to note is the <code>next<code> call: When you delete row, say,
180*cdf0e10cSrcweir            <code>15</code>, followed by <code>next</code>, then your <type>RowSet</type> afterwards
181*cdf0e10cSrcweir            still is on row 15, since the deleted row vanished with the move operation.</dd>
182*cdf0e10cSrcweir
183*cdf0e10cSrcweir        <dt><member scope="com::sun::star::sdbc">XResultSet::refreshRow</member></dt>
184*cdf0e10cSrcweir        <dd>will throw an exception when the cursor is on a deleted row.</dd>
185*cdf0e10cSrcweir
186*cdf0e10cSrcweir        <dt><type scope="com::sun::star::sdbc">XRow</type>: <code>getFoo</code></dt>
187*cdf0e10cSrcweir        <dd>will return an empty value when the cursor is on a deleted row.</dd>
188*cdf0e10cSrcweir
189*cdf0e10cSrcweir        <dt><member scope="com::sun::star::sdbcx">XRowLocate::getBookmark</member></dt>
190*cdf0e10cSrcweir        <dd>will throw an exception when the cursor is on a deleted row.</dd>
191*cdf0e10cSrcweir
192*cdf0e10cSrcweir        <dt><type scope="com::sun::star::sdbc">XRowUpdate</type>: <code>updateFoo</code></dt>
193*cdf0e10cSrcweir        <dd>will throw an exception when the cursor is on a deleted row.</dd>
194*cdf0e10cSrcweir
195*cdf0e10cSrcweir        <dt><member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member></dt>
196*cdf0e10cSrcweir        <dd>will throw an exception when the cursor is on a deleted row.</dd>
197*cdf0e10cSrcweir
198*cdf0e10cSrcweir        <dt><member scope="com::sun::star::sdbc">XResultSetUpdate::moveToInsertRow</member></dt>
199*cdf0e10cSrcweir        <dd>will let the deleted row vanish from the result set. As a consequence, the <member>RowCount</member>
200*cdf0e10cSrcweir            will decrease. Also, subsequent calls to
201*cdf0e10cSrcweir            <member scope="com::sun::star::sdbc">XResultSetUpdate::moveToCurrentRow</member> will not
202*cdf0e10cSrcweir            be able to move back to the deleted row (since it vanished), but only to the
203*cdf0e10cSrcweir            row after the deleted row.</dd>
204*cdf0e10cSrcweir    </dl>
205*cdf0e10cSrcweir    </p>
206*cdf0e10cSrcweir */
207*cdf0e10cSrcweirpublished service RowSet
208*cdf0e10cSrcweir{
209*cdf0e10cSrcweir	service com::sun::star::sdbc::RowSet;
210*cdf0e10cSrcweir
211*cdf0e10cSrcweir	service com::sun::star::sdb::ResultSet;
212*cdf0e10cSrcweir
213*cdf0e10cSrcweir	/** can be used to allow an interaction handler to supply missing data during a execute process.
214*cdf0e10cSrcweir
215*cdf0e10cSrcweir		<p>If you want a row set to be based on a parametrized query, you will usually use
216*cdf0e10cSrcweir		the <type scope="com::sun::star::sdbc">XParameters</type> interface.<br/>
217*cdf0e10cSrcweir		However, you can also choose to let an interaction handler supply such data. For this, you may
218*cdf0e10cSrcweir		for instance instantiate an <type>InteractionHandler</type>, which asks the user for the
219*cdf0e10cSrcweir		data, or you may write your own one, which supplies the data from somewhere else.
220*cdf0e10cSrcweir        The default implementation will only ask for parameters which aren't set before through the <type scope="com::sun::star::sdbc">XParameters</type> interface.</p>
221*cdf0e10cSrcweir
222*cdf0e10cSrcweir		@see com::sun::star::sdb::InteractionHandler
223*cdf0e10cSrcweir	*/
224*cdf0e10cSrcweir	interface com::sun::star::sdb::XCompletedExecution;
225*cdf0e10cSrcweir
226*cdf0e10cSrcweir	/** approving of actions performed on the rowset.
227*cdf0e10cSrcweir
228*cdf0e10cSrcweir        <p>The support of this interface implies a sematical extension to the <type scope="com::sun::star::sdbc">XResultSetUpdate</type>
229*cdf0e10cSrcweir        interface which is supported via the <type scope="com::sun::star::sdbc">ResultSet</type>.</p>
230*cdf0e10cSrcweir
231*cdf0e10cSrcweir        @see XResultSetUpdate
232*cdf0e10cSrcweir	 */
233*cdf0e10cSrcweir	interface XRowSetApproveBroadcaster;
234*cdf0e10cSrcweir
235*cdf0e10cSrcweir	/** is the interface for updating row data to the database.
236*cdf0e10cSrcweir
237*cdf0e10cSrcweir        <p>The optional support of this interface is already implied with the support of the <type scope="com::sun::star::sdbc">ResultSet</type> service.</p>
238*cdf0e10cSrcweir
239*cdf0e10cSrcweir        <p>However, note that the additional support of the <type>XRowSetApproveBroadcaster</type> interface results
240*cdf0e10cSrcweir        in a sematical extension: the methods <member scope="com::sun::star::sdbc">XResultSetUpdate::insertRow</member>,
241*cdf0e10cSrcweir        <member scope="com::sun::star::sdbc">XResultSetUpdate::updateRow</member> and <member scope="com::sun::star::sdbc">XResultSetUpdate::deleteRow</member>
242*cdf0e10cSrcweir        will now throw the <type>RowSetVetoException</type> if the action which is to be performed was vetoed
243*cdf0e10cSrcweir        by one of the <type>XRowSetApproveListener</type>'s.</p>
244*cdf0e10cSrcweir	 */
245*cdf0e10cSrcweir    [optional] interface com::sun::star::sdbc::XResultSetUpdate;
246*cdf0e10cSrcweir
247*cdf0e10cSrcweir	/** is the interface for deleting more than one row, identified by it's bookmark.
248*cdf0e10cSrcweir
249*cdf0e10cSrcweir        <p>The optional support of this interface is already implied with the support of the <type scope="com::sun::star::sdbcx">ResultSet</type> service.</p>
250*cdf0e10cSrcweir
251*cdf0e10cSrcweir        <p>However, note that the additional support of the <type>XRowSetApproveBroadcaster</type> interface results
252*cdf0e10cSrcweir        in a sematical extension: the method <member scope="com::sun::star::sdbcx">XDeleteRows::deleteRows</member>
253*cdf0e10cSrcweir        will now throw the <type>RowSetVetoException</type> if the deletion was vetoed
254*cdf0e10cSrcweir        by one of the <type>XRowSetApproveListener</type>'s.</p>
255*cdf0e10cSrcweir	 */
256*cdf0e10cSrcweir	[optional] interface com::sun::star::sdbcx::XDeleteRows;
257*cdf0e10cSrcweir
258*cdf0e10cSrcweir    /** creates a second result set which is based on the same data.
259*cdf0e10cSrcweir		<p>
260*cdf0e10cSrcweir		The new result set is interoperable with the row set which created it,
261*cdf0e10cSrcweir		e.g., you can exchange bookmarks between both sets.
262*cdf0e10cSrcweir		</p>
263*cdf0e10cSrcweir		<p>
264*cdf0e10cSrcweir		If the row set is not alive (i.e., it was not executed before),
265*cdf0e10cSrcweir		<NULL/>
266*cdf0e10cSrcweir		is returned.
267*cdf0e10cSrcweir		</p>
268*cdf0e10cSrcweir	*/
269*cdf0e10cSrcweir	interface XResultSetAccess;
270*cdf0e10cSrcweir
271*cdf0e10cSrcweir    /** gives access to the parameters contained in the SQL statement represented by the component.
272*cdf0e10cSrcweir
273*cdf0e10cSrcweir        <p>If your <code>RowSet</code> is bound to an SQL command or query which contains parameters, or has
274*cdf0e10cSrcweir        a <member>Filter</member> or <member>Order</member> which contains parameters, then those can be accessed
275*cdf0e10cSrcweir        using the <code>XParametersSupplier</code> interface.</p>
276*cdf0e10cSrcweir
277*cdf0e10cSrcweir        <p>The returned container contains parameter objects which do allow write access to the parameters (which
278*cdf0e10cSrcweir        is equivalent to using the <type scope="com::sun::star::sdbc">XParameters</type> interface inherited from
279*cdf0e10cSrcweir        <type scope="com::sun::star::sdbc">RowSet</type>). Additionally, they provide information about the parameters,
280*cdf0e10cSrcweir        such as their name (if they have one), their type, and the like.</p>
281*cdf0e10cSrcweir    */
282*cdf0e10cSrcweir    [optional] interface XParametersSupplier;
283*cdf0e10cSrcweir
284*cdf0e10cSrcweir	/** is the connection generated by a DataSource or by a URL. It could
285*cdf0e10cSrcweir		also be set from outside. When set from outside the RowSet is not responsible for the closing of the connection.
286*cdf0e10cSrcweir	 */
287*cdf0e10cSrcweir	[property] com::sun::star::sdbc::XConnection ActiveConnection;
288*cdf0e10cSrcweir
289*cdf0e10cSrcweir
290*cdf0e10cSrcweir	/** is the name of the datasource to use, this could be a named datasource
291*cdf0e10cSrcweir		or the URL of a data access component.
292*cdf0e10cSrcweir	 */
293*cdf0e10cSrcweir	[property] string DataSourceName;
294*cdf0e10cSrcweir
295*cdf0e10cSrcweir
296*cdf0e10cSrcweir	/** is the command which should be executed, the type of command depends
297*cdf0e10cSrcweir		on the CommandType.
298*cdf0e10cSrcweir
299*cdf0e10cSrcweir        <p>In case of a <member>CommandType</member> of <member>CommandType::COMMAND</member>,
300*cdf0e10cSrcweir        means in case the <member>Command</member> specifies an SQL statement, the inherited
301*cdf0e10cSrcweir        <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member>
302*cdf0e10cSrcweir        becomes relevant:<br/>
303*cdf0e10cSrcweir        It then can be to used to specify whether the SQL statement should be analyzed on the
304*cdf0e10cSrcweir        client side before sending it to the database server.<br/>
305*cdf0e10cSrcweir        The default value for <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member>
306*cdf0e10cSrcweir        is <TRUE/>. By switching it to <FALSE/>, you can pass backend-specific SQL statements,
307*cdf0e10cSrcweir        which are not standard SQL, to your database.</p>
308*cdf0e10cSrcweir
309*cdf0e10cSrcweir		@see com::sun::star::sdb::CommandType
310*cdf0e10cSrcweir		@see com::sun::star::sdbc::RowSet::EscapeProcessing
311*cdf0e10cSrcweir	 */
312*cdf0e10cSrcweir	[property] string Command;
313*cdf0e10cSrcweir
314*cdf0e10cSrcweir	/** is the type of the command.
315*cdf0e10cSrcweir		@see com::sun::star::sdb::CommandType
316*cdf0e10cSrcweir	 */
317*cdf0e10cSrcweir	[property] long CommandType;
318*cdf0e10cSrcweir
319*cdf0e10cSrcweir	/** is the command which is currently used.
320*cdf0e10cSrcweir		@see com::sun::star::sdb::CommandType
321*cdf0e10cSrcweir	 */
322*cdf0e10cSrcweir	[readonly, property] string ActiveCommand;
323*cdf0e10cSrcweir
324*cdf0e10cSrcweir
325*cdf0e10cSrcweir	/** indicates whether all results should be discarded or not.
326*cdf0e10cSrcweir	 */
327*cdf0e10cSrcweir	[property] boolean IgnoreResult;
328*cdf0e10cSrcweir
329*cdf0e10cSrcweir
330*cdf0e10cSrcweir	/** additional filter for a rowset.
331*cdf0e10cSrcweir	 */
332*cdf0e10cSrcweir	[property] string Filter;
333*cdf0e10cSrcweir
334*cdf0e10cSrcweir
335*cdf0e10cSrcweir	/** indicates whether the filter should be applied or not,
336*cdf0e10cSrcweir		default is <FALSE/>.
337*cdf0e10cSrcweir	 */
338*cdf0e10cSrcweir	[property] boolean ApplyFilter;
339*cdf0e10cSrcweir
340*cdf0e10cSrcweir	/** additional having clause for the row set
341*cdf0e10cSrcweir	 */
342*cdf0e10cSrcweir	[optional,property] string HavingClause;
343*cdf0e10cSrcweir
344*cdf0e10cSrcweir	/** additional group by for the row set
345*cdf0e10cSrcweir	 */
346*cdf0e10cSrcweir	[optional,property] string GroupBy;
347*cdf0e10cSrcweir
348*cdf0e10cSrcweir	/** is a additional sort order definition for a rowset.
349*cdf0e10cSrcweir	 */
350*cdf0e10cSrcweir	[property] string Order;
351*cdf0e10cSrcweir
352*cdf0e10cSrcweir
353*cdf0e10cSrcweir	/** indicates the privileges for insert, update, and delete.
354*cdf0e10cSrcweir		@see com::sun::star::sdbcx::Privilege
355*cdf0e10cSrcweir	 */
356*cdf0e10cSrcweir	[readonly, property] long Privileges;
357*cdf0e10cSrcweir
358*cdf0e10cSrcweir
359*cdf0e10cSrcweir	/** indicates that the current row is modified.
360*cdf0e10cSrcweir	 */
361*cdf0e10cSrcweir	[readonly, property] boolean IsModified;
362*cdf0e10cSrcweir
363*cdf0e10cSrcweir
364*cdf0e10cSrcweir	/** indicates that the current row is going to be inserted to the database.
365*cdf0e10cSrcweir	 */
366*cdf0e10cSrcweir	[readonly, property] boolean IsNew;
367*cdf0e10cSrcweir
368*cdf0e10cSrcweir
369*cdf0e10cSrcweir	/** contains the number of rows accessed in a the data source.
370*cdf0e10cSrcweir	 */
371*cdf0e10cSrcweir	[readonly, property] long RowCount;
372*cdf0e10cSrcweir
373*cdf0e10cSrcweir
374*cdf0e10cSrcweir	/** indicates that all rows of te row set have been counted.
375*cdf0e10cSrcweir	 */
376*cdf0e10cSrcweir	[readonly, property] boolean IsRowCountFinal;
377*cdf0e10cSrcweir
378*cdf0e10cSrcweir
379*cdf0e10cSrcweir	/** is the name of the table which should be updated, this is usually used
380*cdf0e10cSrcweir		for queries which relate to more than one table.
381*cdf0e10cSrcweir	 */
382*cdf0e10cSrcweir	[optional, property] string UpdateTableName;
383*cdf0e10cSrcweir
384*cdf0e10cSrcweir	/** is the name of the table catalog
385*cdf0e10cSrcweir	 */
386*cdf0e10cSrcweir	[optional, property] string UpdateCatalogName;
387*cdf0e10cSrcweir
388*cdf0e10cSrcweir
389*cdf0e10cSrcweir	/** is the name of the table schema.
390*cdf0e10cSrcweir	 */
391*cdf0e10cSrcweir	[optional, property] string UpdateSchemaName;
392*cdf0e10cSrcweir};
393*cdf0e10cSrcweir
394*cdf0e10cSrcweir//=============================================================================
395*cdf0e10cSrcweir
396*cdf0e10cSrcweir}; }; }; };
397*cdf0e10cSrcweir
398*cdf0e10cSrcweir/*===========================================================================
399*cdf0e10cSrcweir===========================================================================*/
400*cdf0e10cSrcweir#endif
401