1.5.8 繰り返し列へのアクセス

繰り返し列の要素を含むレコードを扱う場合は,基本的には通常のレコードのデータを扱う場合と同じですが,繰り返し列のデータを扱う方法が異なります。

<この項の構成>
(1) 検索条件としての要素の利用
(2) ResultSetに取得した要素の参照
(3) ResultSetを利用した要素の更新
(4) SQL文を利用した要素の追加,更新,削除
(5) 繰り返し列を含むレコードの追加

(1) 検索条件としての要素の利用

要素の値を検索,更新,削除,追加時の条件として利用できます。SQL文のWHERE句にArray句を使って条件を設定します。SQL文の指定方法の詳細については「1.4.5 繰り返し列」を参照してください。

(2) ResultSetに取得した要素の参照

ResultSetに読込んだ繰り返し列の要素を参照する方法について説明します。

ResultSetに読込んだ繰り返し列は直接アクセスできないため,いったんアプリケーションがアクセスできる領域(DBRArrayDataオブジェクト)に取り込む必要があります。このオブジェクトはDBRResultSetクラスのGetFieldメソッドで生成されます。

DBRArrayDataオブジェクト中の要素はGetDataメソッドで参照します。また,要素の値は,GetDataメソッドの引数で指定したデータ型に変換できます。

(3) ResultSetを利用した要素の更新

ResultSetに読込んだ繰り返し列を更新する方法には,次の2種類があります。

(a) 繰り返し列の要素の更新

繰り返し列は,ResultSetに読み込んだ繰り返し列からGetFieldメソッドでDBRArrayDataオブジェクトに取込みますが,このオブジェクトは参照専用であるためこのオブジェクト内の要素を直接更新できません。このため,更新用のDBRArrayDataオブジェクトを,参照用のDBRArrayDataオブジェクトからCreateArrayDataメソッドでコピーして生成します。

DBRArrayDataオブジェクトの要素は,SetDataメソッドで更新します。要素の更新後,SetFieldメソッドを呼び出して,繰り返し列をResultSetに反映します。

(b) 繰り返し列の一括更新

ResultSetから繰り返し列のデータを取り込まずに,繰り返し列にデータを設定する方法です。

DBRArrayDataオブジェクトを生成し,DBRArrayDataFactoryオブジェクトのCreatArrayDataメソッドで繰り返し列の属性を指定し,DBRArrayDataオブジェクトを生成します。

次に,DBRArrayDataオブジェクトのCreateメソッドを呼び出し,要素数分の領域を確保します。要素の値は,SetDataメソッドを呼び出して,確保した領域に設定します。要素を設定後,SetFieldメソッドを呼び出して,繰り返し列をResultSetに反映します。

(4) SQL文を利用した要素の追加,更新,削除

DBRArrayDataオブジェクトを利用しないで繰り返し列を更新する方法について説明します。この方法は,SQLのUPDATE文に,ADD,SET,DELETE句を使います。 ADD,SET,DELETE句の指定方法については,「1.4.5 繰り返し列」を参照してください。

SQLの実行には,DatabaseオブジェクトのExecuteDirectメソッドを使います。

(5) 繰り返し列を含むレコードの追加

繰り返し列を含むレコードを追加するには,繰り返し列を含まない場合と同様にSQLのINSERT文を利用します。INSERT文では,VALUES句中のARRAY句に設定する要素の値を指定します。SQLのINSERT文の指定方法については,「1.4.5 繰り返し列」を参照してください。

SQLの実行には,DatabaseオブジェクトのExecuteDirectメソッドを使います。