absolute(int row)
Java Doc говорит:Jaybird (Firebird JDBC) метод абсолютной()
Перемещение курсора на заданное число строк в этом ResultSet объект. Если номер строки положителен, курсор перемещается к указанному номеру строки относительно начала результирующего набора. Первая строка - строка 1, вторая - строка 2, и поэтому on.
Если заданное число строк отрицательное, курсор перемещается в положение абсолютного относительно конца результирующего набора. Например, , вызывающий метод absolute (-1), позиционирует курсор в последней строке; , вызывающий метод absolute (-2), перемещает курсор к следующей строке и т. Д.
Если заданное число строк равно нулю, курсор перемещается до первой строки .
Попытка установить курсор за пределы первой/последней строки в наборе результатов оставляет курсор перед первой строкой или после последней строки .
Примечание: Вызов абсолютного (1) совпадает с вызовом first(). Вызов absolute (-1) совпадает с именем last().
При переходе к 0
absolute(int row)
метод должен вести себя как beforeFirst()
позиционирование курсора непосредственно перед первой строкой.
Но использование JayBird я получил это исключение:
Exception in thread "main" org.firebirdsql.jdbc.FBSQLException: You cannot position to the row 0 with absolute() method.
at org.firebirdsql.jdbc.FBCachedFetcher.absolute(FBCachedFetcher.java:243)
at org.firebirdsql.jdbc.FBCachedFetcher.absolute(FBCachedFetcher.java:232)
at org.firebirdsql.jdbc.AbstractResultSet.absolute(AbstractResultSet.java:1371)
at chapterA.ResultSets.main(ResultSets.java:180)
Searching на Соек источник (FBCachedFetcher.java)
я обнаружил, что когда параметр строка 0, он бросает исключение:
private boolean absolute(int row, boolean internal) throws SQLException {
checkScrollable();
if (row < 0) {
row = rows.size() + row + 1;
}
if (row == 0 && !internal) {
throw new SQLException("You cannot position to row 0 with absolute() method.");
}
Есть ли причина вести себя так?
Заранее благодарен!