-
-
Notifications
You must be signed in to change notification settings - Fork 23
Result sets
Q: Are scrollable result sets supported?
A: Only ResultSet.TYPE_SCROLL_INSENSITIVE
result sets are supported. As of version 1.5 Firebird server does not support scrollable result sets, so driver has to provide a workaround for this issue. In this mode it caches all data locally, so do not use it for big result sets. It might happen that in the future scrollable result sets will be part of the server, at that point support of ResultSet.TYPE_SCROLL_SENSITIVE
will be added.
JayBird 1.0.x and 1.5.x support only ResultSet.CONCUR_READ_ONLY
mode.
JayBird 2.0.0 and higher support updatable result sets under the conditions specified below.
The result set is updatable only when:
- The SELECT statement references subset of single table or an updatable view;
- All base table columns not included in SELECT allow NULL values;
- The SELECT statement does not contain subqueries, a
DISTINCT
predicate, aHAVING
clause, aggregate functions, joined tables, user-defined functions, or stored procedures; - The referenced in SELECT columns include all columns from table’s primary key or SELECT also references the RDB$DB_KEY column.
Please note, Jaybird 2.0 is not able to handle columns changed in the BEFORE INSERT
triggers, especially when such trigger assign the primary key of the record. In this case Jaybird will have an old value of the PK (possibly NULL
), but trigger will assign another ID. Any changes to the record columns will not be saved, since the UPDATE statement will try to update record with the old PK, not the assigned one.
Next versions of Jaybird (possibly 2.1) will be able to refresh the changed fields when running against Firebird 2.0, which supports INSERT INTO ... RETURNS ...
statements.
Q: Does Jaybird provide a javax.sql.RowSet
implementation?
A: No, you can use the implementation from Oracle.