レコードセットとデータテーブル
レコードセットは、ホスト データ宣言 (データ型) の単純な行を含む固定サイズ、境界付き、または無制限のテーブルである Automation オブジェクトです。 datatable は、データテーブルで NewRecordset 関数を使用できない点を除き、あらゆる点でレコードセットと同じ .NET オブジェクトです。 レコードセットまたはデータテーブル オブジェクトを作成したら、そのオブジェクトのメソッドを呼び出して、その行にアクセスできます。
レコードセットまたはデータテーブルは、Microsoft Data Access Components (MDAC) バージョン 2.5 の一部であるリモート データ サービス (RDS) によって行セットの上に実装されます。 RDSServer.DataFactory オブジェクトを使用してレコードセットまたはデータテーブルを作成し、ActiveX® Data Objects (ADO) を使用してレコードセットを更新または読み取ることができます。
レコードセットまたはデータテーブルは、表形式データを表示および操作する手段を提供します。 現時点では、レコードセットを入れ子にしたり、配列を含めることはできません。また、ユーザー定義型 (UDT) を含めることはできません。
レコードセットとデータバランスのサポートにより、TI は構造体の配列 (または COBOL 用語ではレコード) と構造体を効果的にサポートできます。 構造体は固定サイズのレコードセットまたはデータテーブルとして表され、行の各列には 1 つのデータ要素が含まれます。 メインフレームプログラミングの問題に対処するために、TI はレコードセットまたはデータテーブルに含まれる行数を参照して、レコードセットとデータテーブルを固定サイズ、有界、または無制限として分類します。
重要
IBM i 分散プログラム呼び出し (DPC) プログラミング・モデルでは、固定サイズのレコードセットとデータテーブルのみがサポートされます。 プログラミング モデルでは、無制限のレコードセットとデータテーブルはサポートされません。また、OCCURS DEPENDING ON 句、または可変サイズのレコードセットとデータテーブルの使用もサポートしていません。
固定サイズ、有界、および無制限の TI レコードセットとデータテーブルの場合、特定のレコードセット内のすべての行のレイアウトは同じであり、TI Project を使用してデザイン時に定義されます。 レコードセットまたはデータテーブルがメインフレームからの出力または戻り値である場合、TI ランタイム環境では RDSServer.DataFactory オブジェクトを使用してレコードセットまたはデータテーブルを作成し、ADO を使用して、メインフレーム プログラムから返されたデータ行をレコードセットまたはデータテーブルに格納します。
このようなレコードセットは、カーソルの種類が adOpenForwardOnly の切断されたレコードセットです。 レコードセットをスキャンするには、 MoveFirst と MoveNext を呼び出して行間を移動する必要があります。 レコードセットはインプレースで更新できますが、真のデータ ソース (データを返したメインフレーム プログラムによって操作されたデータ ソース) から切断されているため、更新は元のデータ ソースに反映されません。
NewRecordset は、すべての TI コンポーネントに対して自動的に提供される関数です。 この関数は、TI メソッド呼び出しに渡すことができる切断されたレコードセット オブジェクトを作成するために呼び出されます。 NewRecordset は、TI クライアント アプリケーションの利便性を高める目的で提供されます。TI コンポーネントのメソッドにレコードセットを渡す必要はありません。 関数は、入力または入出力のレコードセット オブジェクトに対してのみ呼び出すことができます。 TI ランタイム環境では、 パラメーターが出力レコードセット オブジェクトである場合に、レコードセット オブジェクトが作成されます。