All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.firebirdsql.jdbc.FBFetcher Maven / Gradle / Ivy

There is a newer version: 2.2.15
Show newest version
/*
 * Firebird Open Source JavaEE Connector - JDBC Driver
 *
 * Distributable under LGPL license.
 * You may obtain a copy of the License at http://www.gnu.org/copyleft/lgpl.html
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * LGPL License for more details.
 *
 * This file was created by members of the firebird development team.
 * All individual contributions remain the Copyright (C) of those
 * individuals.  Contributors to this file are either listed here or
 * can be obtained from a source control history command.
 *
 * All rights reserved.
 */
package org.firebirdsql.jdbc;

import java.sql.SQLException;

/**
 * Instances of this class are able to fetch records from the server.
 */
interface FBFetcher {

    String NOT_SUPPORTED_ON_TYPE_FORWARD_ONLY = "This operation is not supported on a TYPE_FORWARD_ONLY result set";

    int MAX_FETCH_ROWS = 400;
	
    /**
     * Move cursor to the rist row.
     * 
     * @return true if cursor was moved to the first row.
     * 
     * @throws SQLException if something went wrong.
     */
    boolean first() throws SQLException;
    
    /**
     * Move cursor to the last row.
     * 
     * @return true if cursor was moved to the last row.
     * 
     * @throws SQLException if something went wrong.
     */
    boolean last() throws SQLException;
    
    /**
     * Move cursor to the previous row.
     * 
     * @return true if cursor was moved to the prevous row.
     * 
     * @throws SQLException if something went wrong.
     */
    boolean previous() throws SQLException;
    
    /**
     * Move to next row.
     * 
     * @return true if cursor was moved.
     * 
     * @throws SQLException if something went wrong.
     */
    boolean next() throws SQLException;

    /**
     * Move cursor to the absolute row.
     * 
     * @param row absolute row number.
     * 
     * @return true if cursor was successfully moved. 
     * 
     * @throws SQLException if something went wrong.
     */
    boolean absolute(int row) throws SQLException;
    
    /**
     * Move cursor relative to the current row.
     *  
     * @param row relative row position.
     * 
     * @return true if cursor was successfully moved.
     * 
     * @throws SQLException if something went wrong.
     */
    boolean relative(int row) throws SQLException;    
    
    /**
     * Move cursor before first record.
     * 
     * @throws SQLException if something went wrong.
     */
    void beforeFirst() throws SQLException;
    
    /**
     * Move cursor after last record.
     * 
     * @throws SQLException if something went wrong.
     */
    void afterLast() throws SQLException;

    /**
     * Close this fetcher and corresponding result set.
     * 

* Equivalent to calling {@link #close(CompletionReason)} with {@link CompletionReason#OTHER}. *

* * @throws SQLException if something went wrong. */ void close() throws SQLException; /** * Close this fetcher and corresponding result set. * * @param completionReason Reason for completion * @throws SQLException if something went wrong. */ void close(CompletionReason completionReason) throws SQLException; /** * Get row number. * * @return row number. */ int getRowNum(); boolean isEmpty() throws SQLException; boolean isBeforeFirst() throws SQLException; boolean isFirst() throws SQLException; boolean isLast() throws SQLException; boolean isAfterLast() throws SQLException; /** * Insert row at current position. This method adds a row at the current * position in case of updatable result sets after successfull execution of * the {@link java.sql.ResultSet#insertRow()} method. * * @param data row data * * @throws SQLException if operation cannot be completed. */ void insertRow(byte[][] data) throws SQLException; /** * Delete row at current position. This method deletes a row at the current * position in case of updatable result sets after successfull execution of * the {@link java.sql.ResultSet#deleteRow()} method. * * @throws SQLException if operation cannot be completed. */ void deleteRow() throws SQLException; /** * Update row at current position. This method updates a row at the current * position in case of updatable result sets after successfull execution of * the {@link java.sql.ResultSet#updateRow()} method. * * @param data row data * * @throws SQLException if operation cannot be completed. */ void updateRow(byte[][] data) throws SQLException; /** * Set the suggested number of rows to fetch with each batch fetch. * * @return The number of rows to be fetched */ int getFetchSize() throws SQLException; /** * Get the suggested number of rows to fetch with each batch fetch. * * @param fetchSize The suggested number of rows to fetch */ void setFetchSize(int fetchSize); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy