blob: 45b50b71e54a0265c9982d69d22ed902d65fecb2 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef __com_sun_star_sdbc_XResultSetUpdate_idl__
#define __com_sun_star_sdbc_XResultSetUpdate_idl__
#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif
#ifndef __com_sun_star_sdbc_SQLException_idl__
#include <com/sun/star/sdbc/SQLException.idl>
#endif
module com { module sun { module star { module sdbc {
/** provides the possiblity to write changes made on a result set back to
database.
*/
published interface XResultSetUpdate: com::sun::star::uno::XInterface
{
//-------------------------------------------------------------------------
/** inserts the contents of the insert row into the result set and
the database. Must be on the insert row when this method is called.
@throws SQLException
if a database access error occurs.
*/
void insertRow() raises (SQLException);
//-------------------------------------------------------------------------
/** updates the underlying database with the new contents of the
current row. Cannot be called when on the insert row.
@throws SQLException
if a database access error occurs.
*/
void updateRow() raises (SQLException);
//-------------------------------------------------------------------------
/** deletes the current row from the result set and the underlying
database. Cannot be called when on the insert row.
@throws SQLException
if a database access error occurs.
*/
void deleteRow() raises (SQLException);
//-------------------------------------------------------------------------
/** cancels the updates made to a row.
<p>
This method may be called after calling an
<code>updateXXX</code>
method(s) and before calling
<member scope="com::sun::star::sdbc">XResultSetUpdate::updateRow()</member>
to rollback the updates made to a row. If no updates have been made or
<code>updateRow</code>
has already been called, then this method has no
effect.
</p>
@throws SQLException
if a database access error occurs.
*/
void cancelRowUpdates() raises (SQLException);
//-------------------------------------------------------------------------
/** moves the cursor to the insert row. The current cursor position is
remembered while the cursor is positioned on the insert row.
<p>
The insert row is a special row associated with an updatable
result set. It is essentially a buffer where a new row may
be constructed by calling the
<code>updateXXX</code>
methods prior to
inserting the row into the result set.
</p>
<p>
Only the
<code>updateXXX</code>
,
<code>getXXX</code>
,
and
<member scope="com::sun::star::sdbc">XResultSetUpdate::insertRow()</member>
methods may be
called when the cursor is on the insert row. All of the columns in
a result set must be given a value each time this method is
called before calling
<code>insertRow</code>
. The method
<code>updateXXX</code>
must be called before a
<code>getXXX</code>
method can be called on a column value.
</p>
@throws SQLException
if a database access error occurs.
*/
void moveToInsertRow() raises (SQLException);
//-------------------------------------------------------------------------
/** moves the cursor to the remembered cursor position, usually the
current row. This method has no effect if the cursor is not on the insert
row.
@throws SQLException
if a database access error occurs.
*/
void moveToCurrentRow() raises (SQLException);
};
//=============================================================================
}; }; }; };
/*===========================================================================
===========================================================================*/
#endif