8.4.37 setFetchSize(int rows)
(1) 機能
このStatementオブジェクトから生成されるResultSetオブジェクトの,デフォルトのフェッチサイズ(HADBサーバからHADBクライアントに検索結果を一括転送する行数)を設定します。
(2) 形式
public synchronized void setFetchSize(int rows) throws SQLException
(3) 引数
- int rows:
-
一括転送する行数を0〜65,535の範囲で指定します。
1以上の値を指定した場合,指定値に従って複数の行データをHADBサーバからHADBクライアントに一括転送します。
0を指定した場合,またはこのメソッドを実行しない場合は,システムプロパティ,ユーザプロパティ,または接続用のURLのプロパティのadb_clt_fetch_sizeの値が適用されます。
setFetchSizeメソッドの設定値とプロパティのadb_clt_fetch_sizeの設定値の関係を次の表に示します。
表8‒16 setFetchSizeメソッドの設定値とプロパティのadb_clt_fetch_sizeの設定値の関係 setFetchSizeメソッドの設定値(m)
プロパティのadb_clt_fetch_sizeの設定値(n)
一括転送される行数
0
1≦n≦65,535
n
指定なし
1
1≦m≦65,535
1≦n≦65,535
m
指定なし
m
(4) 戻り値
なし。
(5) 発生する例外
次に示す場合にSQLExceptionが投入されます。
-
Statementオブジェクトがクローズされている場合
-
Statementオブジェクトを生成したConnectionオブジェクトがクローズされている場合
-
rowsに0〜65,535以外の値を指定した場合
-
rowsに指定した値が,最大格納行数(setMaxRowsメソッドの設定値)よりも大きい場合
-
rowsに指定した値が,最大格納行数(setLargeMaxRowsメソッドの設定値)よりも大きい場合
(6) 留意事項
HADBサーバに対して一度の通信で要求する行数は,次の表に示す優先順位に従って決定されます。
優先順位 |
HADBサーバに対して一度の通信で要求する行数 |
---|---|
1 |
ResultSetクラスのsetFetchSizeメソッドの引数で指定した値 |
2 |
StatementクラスのsetFetchSizeメソッドの引数で指定した値 |
3 |
システムプロパティadb_clt_fetch_sizeで設定した値 |
4 |
DriverManagerクラスのgetConnectionメソッドの引数infoに指定したadb_clt_fetch_sizeプロパティの値 |
5 |
DriverManagerクラスのgetConnectionメソッドの引数urlに指定したadb_clt_fetch_sizeの値 |
なお,検索結果の行数が上記の表に示す転送行数より多い場合,検索が終了するまで(またはAPからの検索要求がなくなるまで),HADBサーバに対して転送を要求します。