Top > OOoBasic > Base > RowSet

*行セット [#b7dbcd88]
データの利用またはデータの変更などに利用する com.sun.star.sdbc.RowSet サービス。com.sun.star.sdbc.ResultSet をインクルードしているため、ResultSet がかなりの部分を占めています。

また、フォームを利用する場合にはフォームオブジェクトは .sdb.ResultSet、.sdb.RowSet、.sdbc.ResultSet、.sdbc.RowSet サービスをサポートしているため同じ操作が行えます。
#contents
**サービス [#z1c13e4f]
サービスをインスタンス化して利用します。

 oRowSet = CreateUnoService("com.sun.star.sdbc.RowSet")
**アクティブ接続 [#f5588a61]
データソースから取得した[[接続>../Connection]]を指定します。

 oRowSet.ActiveConnection = oDBConnection
**コマンド [#j6c4fe27]
コマンドの種類を CommandType に設定します。タイプが COMMAND の時には Command に SQL ステートメントを指定します。


**データの取得 [#q0f2f017]
execute メソッドでデータソースからデータを取得します。

**カーソルの移動 [#s3ad878b]
現在のデータ行を示すカーソルを移動するメソッドが数種類あります。
***次のレコード [#u16e9598]
next メソッドで次のレコードへカーソルを移動します。次のレコードがない場合 false が戻ります。

 While oRowSet.next()
   oRowSet.getString(0)
 WEnd
***前のレコード [#x346e432]
previous メソッドで一つ前のレコードへ移ります。次のレコードが無いときには false が戻ります。

***相対移動 [#e0bb903c]
relative メソッドで現在のカーソル位置から相対的に移動します。

***行指定での移動 [#y105e354]
absolute メソッドで特定の行に移動します。

***最初の行より前および最後の行後 [#q37b44dd]
行の開始前への移動は beforeFirst メソッドで、最後の行後への移動は afterLast メソッドで行います。
***カーソル位置の確認 [#j06c43df]
isBeforeFirst メソッドで開始前の位置かどうか、isAfterLast メソッドで最終行後の位置かどうかを確認できます。

isFirst メソッドで最初の行かどうか、isLast メソッドで最後の行かどうか確認できます。

***最初の行と最後の行 [#vfb8c249]
最初の行へは first メソッドで、最後の行へは last メソッドで移動します。

***カーソル位置 [#hed1b91a]
現在のカーソル位置を示すインデックスを getRow メソッドで取得できます。
**列の検索 [#c596ecc7]
列データを検索するには findColumn メソッドを利用します。戻り値は現在のセット中の列long 型でのインデックスです。

 oRowSet.findColumn("WORD")

列のインデックスはソースからデータを取得するときに利用します。
**値の取得 [#i9287569]
各データを取得するには列を指定します。指定した列インデックスのデータを特定の型データとして取得します。

-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 )
**値の更新 [#q30562f4]
値を更新するメソッドは次のものがあります。
-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 )
**値の設定 [#r9a743ca]
次のメソッドを利用して値を設定します。

-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 )

**行の挿入 [#n1e04c93]
insertRow メソッドで新たな行を挿入します。

挿入した行へは moveToInsertRow メソッドで移動できます。また、元の行に戻るには moveToCurrentRow メソッドを利用します。
**行の削除 [#rb2f2c4e]
deleteRow メソッドで現在のカーソル行を削除します。
**行の更新 [#p5502405]
updateXXX メソッドで更新された行の更新を適用するために updateRow メソッドで既存の行を更新します。

updateRow メソッドを呼ぶ前に行の更新を cancelRowUpdates メソッドで破棄できます。

**情報 [#f778e822]
getMetaData メソッドで現在の RowSet の情報を取得できます。

|返り値の型|メソッド名|引数|説明|h
|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 )|書き込み可能かどうか|

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes