18.16 ResultSetクラス
- 説明
-
ResultSetクラスでは,主に次の機能を提供します。
-
行単位のResultSet内の移動
-
結果データの返却
-
検索結果データがNULL値かどうかの通知
ResultSetクラスの提供する各メソッドの詳細および使用方法については,JavaSoft提供のJDBC関連ドキュメントを参照してください。
-
- 注意事項
-
-
マルチスレッド
一つのResultSetオブジェクトを複数のスレッドで並行して使用する場合の動作は保証しません。
一つのResultSetオブジェクトは一つのスレッドで処理してください。
-
setFetchSizeメソッドの使用について
Statementクラスの注意事項を参照してください。
-
HiRDBのホールダブルカーソル機能の使用について
DABroker Libraryでは,HiRDBのホールダブルカーソル機能を使用することによって,複数のコミットにわたってカーソルを保持できます。使用するためには,接続時にプロパティまたはURLにHIRDB_CURSOR=trueを設定するか,DataSourceクラスのsetHiRDBCursorMode(true)を設定する必要があります。
-
ResultSetのクローズ
プーリング使用時(ConnectionPoolDataSourceを使用した接続),およびXA使用時(XADataSourceを使用した接続)でResultSetのcloseメソッド実行中にデータベースとの物理的な切断でエラーが発生しコネクションプーリングが使用できなくなった場合,ConnectionEventListener.connectionErrorOccurredは発生しません。
-
- 制限事項
-
DABroker Libraryで使用するResultSetクラスの制限事項を,次に示します。
表18‒83 ResultSetクラスの制限事項 メソッド名
制限事項
JDBC1.0での制限
JDBC2.0での制限
close
ステートメントのクローズ時,または次のSQL実行時に暗黙的にクローズします。プーリング使用時(ConnectionPoolDataSourceを使用した接続),およびXA使用時(XADataSourceを使用した接続)でResultSet.closeメソッド実行中にデータベースとの物理的な切断でエラーが発生しコネクションプーリングが使用できなくなった場合ConnectionEventListener.connectionErrorOccurredは発生しません。
○
○
cancelRowUpdates
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
deleteRow
findColumn
指定された列名がResultSetオブジェクトに含まれていないため列インデックスが取得できない場合,SQLExceptionをスローします。
○
○
absolute
absolute(-2)と指定した場合,カーソルは最終行の前の行へ移動します。
−
○
afterLast
結果セットに行がない場合,何も処理しません。
−
○
beforeFirst
cancelRowUpdates
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
deleteRow
getArray
SQL配列型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○
getBlob
接続データベースがHiRDB,Oracle9i,またはOracle10g以外の場合,SQL LONGVARBINARY型およびSQL BLOB型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○
getClob
接続データベースがOracle9i,またはOracle10g以外の場合,SQL CLOB型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○
getFetchSize
0,またはsetFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より小さい場合はsetFetchSizeメソッドで指定された値を,setFetchSizeメソッドで指定された値がsetMaxRowsメソッドで指定された値より大きい場合はsetMaxRowsメソッドで指定された値を返却します。
−
○
getRef
SQL構造化型をサポートしていないため,無条件にSQLExceptionをスローします。
−
○
isFirst
結果セットに行がない場合falseを返却します。
−
○
isLast
結果セットに行がない場合falseを返却します。
−
○
insertRow
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
moveToCurrentRow
moveToInsertRow
previous
カーソルの移動方向がnextメソッドと逆方向になります。
−
○
refreshRow
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
relative
結果セットに行がない場合SQLExceptionをスローします。カーソルが先頭行の前,または最終行の後ろにある場合は有効として処理します。処理結果が結果セットの先頭行,最終行を超える場合はそれぞれ先頭行の前,最終行の後ろへ移動します。
−
○
rowDeleted
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
rowInserted
rowUpdated
setFetchDirection
FETCH_FORWARD以外を指定した場合,SQLExceptionをスローします。
−
○
setFetchSize
接続データベース種別がHiRDB,またはORACLEの場合で,CLOBやBLOBなどのLONG VARCHAR・LONG VARBINARY型データ列の検索を含まないときだけ有効となります。
−
○
updateAsciiStream
更新可能型ResultSetをサポートしていないため,無条件にSQLExceptionをスローします。
−
○
updateBigDecimal
updateBinaryStream
updateBoolean
updateByte
updateBytes
updateCharacterStream
updateDate
updateDouble
updateFloat
updateInt
updateLong
updateNull
updateObject
updateRow
updateShort
updateString
updateTime
updateTimestamp