| /************************************************************** |
| * |
| * 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_XResultSet_idl__ |
| #define __com_sun_star_sdbc_XResultSet_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 { |
| |
| published interface XStatement; |
| |
| |
| /** provides the navigation on a table of data. A |
| <type scope="com::sun::star::sdbc">ResultSet</type> |
| object is usually generated by executing a |
| <type scope="com::sun::star::sdbc">Statement</type> |
| . |
| |
| |
| <p> |
| A ResultSet maintains a cursor pointing to its current row of |
| data. Initially the cursor is positioned before the first row. |
| The 'next' method moves the cursor to the next row. |
| </p> |
| */ |
| published interface XResultSet: com::sun::star::uno::XInterface |
| { |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor down one row from its current position. |
| |
| |
| <p> |
| A ResultSet cursor is initially positioned before the first row; the |
| first call to next makes the first row the current row; the |
| second call makes the second row the current row, and so on. |
| </p> |
| <p>If an input stream is open for the current row, a call |
| to the method |
| <code>next</code> |
| will implicitly close it. |
| The ResultSet's warning chain is cleared when a new row is read. |
| </p> |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean next() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the cursor is before the first row in the result |
| set. |
| @returns |
| <TRUE/> if so |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean isBeforeFirst() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the cursor is after the last row in the result |
| set. |
| @returns |
| <TRUE/> if so |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean isAfterLast() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the cursor is on the first row of the result set. |
| @returns |
| <TRUE/> if so |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean isFirst() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the cursor is on the last row of the result set. |
| |
| |
| <p> |
| <B> |
| Note: |
| </B> |
| Calling the method |
| <code>isAtLast</code> |
| may be expensive because the SDBC driver might need to fetch ahead one row in order |
| to determine whether the current row is the last row in the result set. |
| </p> |
| @returns |
| <TRUE/> if so |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean isLast() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the front of the result set, just before the |
| first row. Has no effect if the result set contains no rows. |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| void beforeFirst() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the end of the result set, just after the last |
| row. Has no effect if the result set contains no rows. |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| void afterLast() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the first row in the result set. |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean first() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the last row in the result set. |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean last() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** retrieves the current row number. The first row is number 1, the |
| second number 2, and so on. |
| @returns |
| the current position |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| long getRow() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the given row number in the result set. |
| |
| |
| <p> |
| If the row number is positive, the cursor moves to |
| the given row number with respect to the |
| beginning of the result set. The first row is row 1, the second |
| is row 2, and so on. |
| </p> |
| <p> |
| If the given row number is negative, the cursor moves to |
| an absolute row position with respect to |
| the end of the result set. For example, calling |
| <code>absolute(-1)</code> |
| positions the |
| cursor on the last row, |
| <code>absolute(-2)</code> |
| indicates the next-to-last row, and so on. |
| </p> |
| <p> |
| An attempt to position the cursor beyond the first/last row in |
| the result set leaves the cursor before/after the first/last |
| row, respectively. |
| </p> |
| <p> |
| Note: Calling |
| <code>absolute(1)</code> |
| is the same |
| as calling |
| <member scope="com::sun::star::sdbc">XResultSet::first()</member> |
| . |
| Calling <code>moveToPosition(-1)</code> is the same as calling |
| <code>moveToLast()</code>. |
| </p> |
| */ |
| boolean absolute([in] long row ) raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor a relative number of rows, either positive or negative. |
| |
| |
| <p> |
| Attempting to move beyond the first/last row in the result set |
| positions the cursor before/after |
| the first/last row. Calling |
| <code>relative(0)</code> |
| is valid, but does not change the cursor position. |
| </p> |
| <p> |
| Note: Calling |
| <code>relative(1)</code> |
| is different from calling |
| <member scope="com::sun::star::sdbc">XResultSet::next()</member> |
| because is makes sense to call |
| <code>next()</code> |
| when there is no current row, for example, when the cursor is positioned before |
| the first row or after the last row of the result set. |
| </p> |
| @param rows |
| how many rows should be moved relative to the current row |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean relative([in]long rows) raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** moves the cursor to the previous row in the result set. |
| |
| |
| <p> |
| Note: |
| <code>previous()</code> |
| is not the same as |
| <code>relative(-1)</code> |
| because it makes sense to call |
| <code>previous()</code> |
| when there is no current row. |
| </p> |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean previous() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** refreshes the current row with its most recent value in |
| the database. Cannot be called when on the insert row. |
| The |
| <code>refreshRow</code> |
| method provides a way for an application to |
| explicitly tell the SDBC driver to refetch a row(s) from the |
| database. An application may want to call |
| <code>refreshRow</code> |
| when caching or prefetching is being done by the SDBC driver to |
| fetch the latest value of a row from the database. The SDBC driver |
| may actually refresh multiple rows at once if the fetch size is |
| greater than one. |
| All values are refetched subject to the transaction isolation |
| level and cursor sensitivity. If |
| <code>refreshRow</code> |
| is called after calling |
| <code>updateXXX</code> |
| , but before calling |
| <member scope="com::sun::star::sdbc">XResultSet::updateRow()</member> |
| , then the updates made to the row are lost. |
| Calling the method |
| <code>refreshRow</code> |
| frequently will likely slow performance. |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| void refreshRow() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the current row has been updated. The value returned |
| depends on whether or not the result set can detect updates. |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean rowUpdated() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether the current row has had an insertion. The value returned |
| depends on whether or not the result set can detect visible inserts. |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean rowInserted() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** indicates whether a row has been deleted. A deleted row may leave |
| a visible "hole" in a result set. This method can be used to |
| detect holes in a result set. The value returned depends on whether |
| or not the result set can detect deletions. |
| @returns |
| <TRUE/> if successful |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| boolean rowDeleted() raises (SQLException); |
| //------------------------------------------------------------------------- |
| |
| /** returns the Statement that produced this |
| <type scope="com::sun::star::sdbc">ResultSet</type> |
| object. If the result set was generated some other way, such as by an |
| <type scope="com::sun::star::sdbc">XDatabaseMetaData</type> |
| method, this method returns |
| <NULL/> |
| . |
| @returns |
| the statement object |
| @throws SQLException |
| if a database access error occurs. |
| */ |
| com::sun::star::uno::XInterface getStatement() raises (SQLException); |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| /*=========================================================================== |
| ===========================================================================*/ |
| #endif |