行セット 
データの利用またはデータの変更などに利用する com.sun.star.sdbc.RowSet サービス。com.sun.star.sdbc.ResultSet をインクルードしているため、ResultSet がかなりの部分を占めています。
また、フォームを利用する場合にはフォームオブジェクトは .sdb.ResultSet、.sdb.RowSet、.sdbc.ResultSet、.sdbc.RowSet サービスをサポートしているため同じ操作が行えます。
サービス 
サービスをインスタンス化して利用します。
oRowSet = CreateUnoService("com.sun.star.sdbc.RowSet")
アクティブ接続 
データソースから取得した接続を指定します。
oRowSet.ActiveConnection = oDBConnection
コマンド 
コマンドの種類を CommandType に設定します。タイプが COMMAND の時には Command に SQL ステートメントを指定します。
データの取得 
execute メソッドでデータソースからデータを取得します。
カーソルの移動 
現在のデータ行を示すカーソルを移動するメソッドが数種類あります。
次のレコード 
next メソッドで次のレコードへカーソルを移動します。次のレコードがない場合 false が戻ります。
While oRowSet.next()
oRowSet.getString(0)
WEnd
前のレコード 
previous メソッドで一つ前のレコードへ移ります。次のレコードが無いときには false が戻ります。
相対移動 
relative メソッドで現在のカーソル位置から相対的に移動します。
行指定での移動 
absolute メソッドで特定の行に移動します。
最初の行より前および最後の行後 
行の開始前への移動は beforeFirst メソッドで、最後の行後への移動は afterLast メソッドで行います。
カーソル位置の確認 
isBeforeFirst メソッドで開始前の位置かどうか、isAfterLast メソッドで最終行後の位置かどうかを確認できます。
isFirst メソッドで最初の行かどうか、isLast メソッドで最後の行かどうか確認できます。
最初の行と最後の行 
最初の行へは first メソッドで、最後の行へは last メソッドで移動します。
カーソル位置 
現在のカーソル位置を示すインデックスを getRow メソッドで取得できます。
列の検索 
列データを検索するには findColumn メソッドを利用します。戻り値は現在のセット中の列long 型でのインデックスです。
oRowSet.findColumn("WORD")
列のインデックスはソースからデータを取得するときに利用します。
値の取得 
各データを取得するには列を指定します。指定した列インデックスのデータを特定の型データとして取得します。
- getString
- getBoolean
- getByte
- getShort
- getInt
- getLong
- getFloat
- getDouble
- getBytes
- getDate
- getTime
- getTimestamp
- getBinaryStream
- getCharacterStream
- getRef
- getBlob
- getClob
- getArray
- getObject( [in] long columnIndex, [in] com.sun.star.container.XNameAccess typeMap )
また、wasNull メソッドで NULL 値かどうか確認できます。
列指定には列番号を使用します。
nColID = oRowSet.findColumn("WORD")
sStr = oRowSet.getString( nColID )
値の更新 
値を更新するメソッドは次のものがあります。
- updateNull ( [in] long columnIndex )
- updateBoolean ( [in] long columnIndex, [in] boolean x )
- updateByte ( [in] long columnIndex, [in] byte x )
- updateShort ( [in] long columnIndex, [in] short x )
- updateInt ( [in] long columnIndex, [in] long x )
- updateLong ( [in] long columnIndex, [in] hyper x )
- updateFloat ( [in] long columnIndex, [in] float x )
- updateDouble ( [in] long columnIndex, [in] double x )
- updateString ( [in] long columnIndex, [in] string x )
- updateBytes ( [in] long columnIndex, [in] []byte x )
- updateDate ( [in] long columnIndex, [in] com.sun.star.util.Date x )
- updateTime ( [in] long columnIndex, [in] com.sun.star.util.Time x )
- updateTimestamp ( [in] long columnIndex, [in] com.sun.star.util.DateTime x )
- updateBinaryStream ( [in] long columnIndex, [in] com.sun.star.io.XInputStream x, [in] long length )
- updateCharacterStream ( [in] long columnIndex, [in] com.sun.star.io.XInputStream x, [in] long length )
- updateObject ( [in] long columnIndex, [in] any x )
- updateNumericObject ( [in] long columnIndex, [in] any x, [in] long scale )
値の設定 
次のメソッドを利用して値を設定します。
- setNull ( [in] long parameterIndex, [in] long sqlType )
- setObjectNull ( [in] long parameterIndex, [in] long sqlType, [in] string typeName )
- setBoolean ( [in] long parameterIndex, [in] boolean x )
- setByte ( [in] long parameterIndex, [in] byte x )
- setShort ( [in] long parameterIndex, [in] short x )
- setInt ( [in] long parameterIndex, [in] long x )
- setLong ( [in] long parameterIndex, [in] hyper x )
- setFloat ( [in] long parameterIndex, [in] float x )
- setDouble ( [in] long parameterIndex, [in] double x )
- setString ( [in] long parameterIndex, [in] string x )
- setBytes ( [in] long parameterIndex, [in] []byte x )
- setDate ( [in] long parameterIndex, [in] com.sun.star.util.Date x )
- setTime ( [in] long parameterIndex, [in] com.sun.star.util.Time x )
- setTimestamp ( [in] long parameterIndex, [in] com.sun.star.util.DateTime x )
- setBinaryStream ( [in] long parameterIndex, [in] com.sun.star.io.XInputStream x, [in] long length )
- setCharacterStream ( [in] long parameterIndex, [in] com.sun.star.io.XInputStream x, [in] long lengt- )
- setObject ( [in] long parameterIndex, [in] any x )
- setObjectWithInfo ( [in] long parameterIndex, [in] any x, [in] long targetSqlType, [in] long scale )
- setRef ( [in] long parameterIndex, [in] com.sun.star.sdbc.XRef x )
- setBlob ( [in] long parameterIndex, [in] com.sun.star.sdbc.XBlob x )
- setClob ( [in] long parameterIndex, [in] com.sun.star.sdbc.XClob x )
- setArray ( [in] long parameterIndex, [in] com.sun.star.sdbc.XArray x )
行の挿入 
insertRow メソッドで新たな行を挿入します。
挿入した行へは moveToInsertRow メソッドで移動できます。また、元の行に戻るには moveToCurrentRow メソッドを利用します。
行の削除 
deleteRow メソッドで現在のカーソル行を削除します。
行の更新 
updateXXX メソッドで更新された行の更新を適用するために updateRow メソッドで既存の行を更新します。
updateRow メソッドを呼ぶ前に行の更新を cancelRowUpdates メソッドで破棄できます。
情報 
getMetaData メソッドで現在の RowSet の情報を取得できます。
返り値の型 | メソッド名 | 引数 | 説明 |
string | getCatalogName | ( [in] long column ) | 表のカタログ名 |
long | getColumnCount | () | 列数を取得します |
long | getColumnDisplaySize | ( [in] long column ) | 列表示最大文字数 |
string | getColumnLabel | ( [in] long column ) | 列ラベル |
string | getColumnName | ( [in] long column ) | 列名を返します |
string | getColumnServiceName | ( [in] long column ) | 列データサービス名 |
long | getColumnType | ( [in] long column ) | 列データタイプ com.sun.star.sdbc.DataType 定数 |
string | getColumnTypeName | ( [in] long column ) | 列データタイプ名 |
long | getPrecision | ( [in] long column ) | |
long | getScale | ( [in] long column ) | |
string | getSchemaName | ( [in] long column ) | 列のスキーマ名 |
string | getTableName | ( [in] long column ) | 所属する表名 |
boolean | isAutoIncrement | ( [in] long column ) | 自動で増加 (ID フィールドなど)。true のときは読み込み専用 |
boolean | isCaseSensitive | ( [in] long column ) | 大文字と小文字を区別するかどうか |
boolean | isCurrency | ( [in] long column ) | 通貨値かどうか |
boolean | isDefinitelyWritable | ( [in] long column ) | 確実に書き込み可能かどうか |
long | isNullable | ( [in] long column ) | Null 値が利用可能かどうか |
boolean | isReadOnly | ( [in] long column ) | 読み込み専用かどうか |
boolean | isSearchable | ( [in] long column ) | |
boolean | isSigned | ( [in] long column ) | 符号付かどうか |
boolean | isWritable | ( [in] long column ) | 書き込み可能かどうか |