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