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_XResultSetUpdate_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_sdbc_XResultSetUpdate_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
37*b1cdbd2cSJim Jagielski/** provides the possiblity to write changes made on a result set back to
38*b1cdbd2cSJim Jagielski	database.
39*b1cdbd2cSJim Jagielski */
40*b1cdbd2cSJim Jagielskipublished interface XResultSetUpdate: com::sun::star::uno::XInterface
41*b1cdbd2cSJim Jagielski{
42*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski	/** inserts the contents of the insert row into the result set and
45*b1cdbd2cSJim Jagielski		the database. Must be on the insert row when this method is called.
46*b1cdbd2cSJim Jagielski		@throws SQLException
47*b1cdbd2cSJim Jagielski				if a database access error occurs.
48*b1cdbd2cSJim Jagielski	 */
49*b1cdbd2cSJim Jagielski	void insertRow() raises (SQLException);
50*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielski	/** updates the underlying database with the new contents of the
53*b1cdbd2cSJim Jagielski		current row. Cannot be called when on the insert row.
54*b1cdbd2cSJim Jagielski		@throws SQLException
55*b1cdbd2cSJim Jagielski				if a database access error occurs.
56*b1cdbd2cSJim Jagielski	 */
57*b1cdbd2cSJim Jagielski	void updateRow() raises (SQLException);
58*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski	/** deletes the current row from the result set and the underlying
61*b1cdbd2cSJim Jagielski		database. Cannot be called when on the insert row.
62*b1cdbd2cSJim Jagielski		@throws SQLException
63*b1cdbd2cSJim Jagielski				if a database access error occurs.
64*b1cdbd2cSJim Jagielski	 */
65*b1cdbd2cSJim Jagielski	void deleteRow() raises (SQLException);
66*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielski	/** cancels the updates made to a row.
69*b1cdbd2cSJim Jagielski
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski		<p>
72*b1cdbd2cSJim Jagielski		This method may be called after calling an
73*b1cdbd2cSJim Jagielski		<code>updateXXX</code>
74*b1cdbd2cSJim Jagielski		method(s) and before calling
75*b1cdbd2cSJim Jagielski		<member scope="com::sun::star::sdbc">XResultSetUpdate::updateRow()</member>
76*b1cdbd2cSJim Jagielski		to rollback the updates made to a row. If no updates have been made or
77*b1cdbd2cSJim Jagielski		<code>updateRow</code>
78*b1cdbd2cSJim Jagielski		has already been called, then this method has no
79*b1cdbd2cSJim Jagielski		effect.
80*b1cdbd2cSJim Jagielski		</p>
81*b1cdbd2cSJim Jagielski		@throws SQLException
82*b1cdbd2cSJim Jagielski				if a database access error occurs.
83*b1cdbd2cSJim Jagielski	 */
84*b1cdbd2cSJim Jagielski	void cancelRowUpdates() raises (SQLException);
85*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski	/** moves the cursor to the insert row.  The current cursor position is
88*b1cdbd2cSJim Jagielski		remembered while the cursor is positioned on the insert row.
89*b1cdbd2cSJim Jagielski
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski		<p>
92*b1cdbd2cSJim Jagielski		The insert row is a special row associated with an updatable
93*b1cdbd2cSJim Jagielski		result set. It is essentially a buffer where a new row may
94*b1cdbd2cSJim Jagielski		be constructed by calling the
95*b1cdbd2cSJim Jagielski		<code>updateXXX</code>
96*b1cdbd2cSJim Jagielski		methods prior to
97*b1cdbd2cSJim Jagielski		inserting the row into the result set.
98*b1cdbd2cSJim Jagielski		</p>
99*b1cdbd2cSJim Jagielski		<p>
100*b1cdbd2cSJim Jagielski		Only the
101*b1cdbd2cSJim Jagielski		<code>updateXXX</code>
102*b1cdbd2cSJim Jagielski		,
103*b1cdbd2cSJim Jagielski		<code>getXXX</code>
104*b1cdbd2cSJim Jagielski		,
105*b1cdbd2cSJim Jagielski		and
106*b1cdbd2cSJim Jagielski		<member scope="com::sun::star::sdbc">XResultSetUpdate::insertRow()</member>
107*b1cdbd2cSJim Jagielski		methods may be
108*b1cdbd2cSJim Jagielski		called when the cursor is on the insert row.  All of the columns in
109*b1cdbd2cSJim Jagielski		a result set must be given a value each time this method is
110*b1cdbd2cSJim Jagielski		called before calling
111*b1cdbd2cSJim Jagielski		<code>insertRow</code>
112*b1cdbd2cSJim Jagielski		. The method
113*b1cdbd2cSJim Jagielski		<code>updateXXX</code>
114*b1cdbd2cSJim Jagielski		must be called before a
115*b1cdbd2cSJim Jagielski		<code>getXXX</code>
116*b1cdbd2cSJim Jagielski		method can be called on a column value.
117*b1cdbd2cSJim Jagielski		</p>
118*b1cdbd2cSJim Jagielski		@throws SQLException
119*b1cdbd2cSJim Jagielski				if a database access error occurs.
120*b1cdbd2cSJim Jagielski	 */
121*b1cdbd2cSJim Jagielski	void moveToInsertRow() raises (SQLException);
122*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
123*b1cdbd2cSJim Jagielski
124*b1cdbd2cSJim Jagielski	/** moves the cursor to the remembered cursor position, usually the
125*b1cdbd2cSJim Jagielski		current row. This method has no effect if the cursor is not on the insert
126*b1cdbd2cSJim Jagielski		row.
127*b1cdbd2cSJim Jagielski		@throws SQLException
128*b1cdbd2cSJim Jagielski				if a database access error occurs.
129*b1cdbd2cSJim Jagielski	 */
130*b1cdbd2cSJim Jagielski	void moveToCurrentRow() raises (SQLException);
131*b1cdbd2cSJim Jagielski};
132*b1cdbd2cSJim Jagielski
133*b1cdbd2cSJim Jagielski//=============================================================================
134*b1cdbd2cSJim Jagielski
135*b1cdbd2cSJim Jagielski}; }; }; };
136*b1cdbd2cSJim Jagielski
137*b1cdbd2cSJim Jagielski/*===========================================================================
138*b1cdbd2cSJim Jagielski===========================================================================*/
139*b1cdbd2cSJim Jagielski#endif
140