/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ module com { module sun { module star { module sdbc { published interface XStatement; /** provides the navigation on a table of data. A com::sun::star::sdbc::ResultSet object is usually generated by executing a com::sun::star::sdbc::Statement.
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.
*/ published interface XResultSet: com::sun::star::uno::XInterface { /** moves the cursor down one row from its current position.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.
If an input stream is open for the current row, a call
to the method
next
will implicitly close it.
The ResultSet's warning chain is cleared when a new row is read.
Note:
Calling the method
isAtLast
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.
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.
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
absolute(-1)
positions the
cursor on the last row,
absolute(-2)
indicates the next-to-last row, and so on.
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.
Note: Calling
absolute(1)
is the same as calling com::sun::star::sdbc::XResultSet::first().
Calling moveToPosition(-1)
is the same as calling
moveToLast()
.
Attempting to move beyond the first/last row in the result set
positions the cursor before/after
the first/last row. Calling
relative(0)
is valid, but does not change the cursor position.
Note: Calling
relative(1)
is different from calling
com::sun::star::sdbc::XResultSet::next()
because is makes sense to call
next()
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.
Note:
previous()
is not the same as
relative(-1)
because it makes sense to call
previous()
when there is no current row.
refreshRow
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
refreshRow
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
refreshRow
is called after calling
updateXXX
, but before calling
com::sun::star::sdbc::XResultSet::updateRow()
, then the updates made to the row are lost.
Calling the method
refreshRow
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
com::sun::star::sdbc::ResultSet
object. If the result set was generated some other way, such as by an
com::sun::star::sdbc::XDatabaseMetaData
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);
};
}; }; }; };
/*===========================================================================
===========================================================================*/
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */