30.4 OCI任意データ・セット・インタフェース関数
OCIの任意データ・セット・インタフェース関数をリストし、説明します。
表30-6は、この項で説明している任意データ・セット・インタフェース関数を示しています。
表30-6 任意データ・セット関数
関数 | 用途 |
---|---|
新規のスケルトン・インスタンスを |
|
指定の継続時間に対して |
|
|
|
|
|
|
|
現行の位置にあるインスタンスに対応する |
|
|
30.4.1 OCIAnyDataSetAddInstance()
新規のスケルトン・インスタンスをOCIAnyDataSet
に追加し、そのインスタンスのすべての属性をNULL
に設定します。
用途
新規のスケルトン・インスタンスをOCIAnyDataSet
に追加し、そのインスタンスのすべての属性をNULL
に設定します。
構文
sword OCIAnyDataSetAddInstance ( OCISvcCtx *svchp, OCIError *errhp, OCIAnyDataSet *data_set, OCIAnyData **data );
パラメータ
- svchp (IN)
-
OCIサービス・コンテキストです。
- errhp (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。 - data_set (IN/OUT)
-
新規インスタンスを追加する
OCIAnyDataSet
です。 - data (IN/OUT)
-
新規に追加するインスタンスに対応する
OCIAnyData
です。(*data)
がNULL
の場合、新規のOCIAnyData
はOCIAnyDataSet
と同じ継続時間の間割り当てられます。(*data)
がNULL
以外の場合は再使用されます。このOCIAnyData
は、後でOCIAnyDataConvert()
コールを使用して構成したり、OCIAnyDataAttrSet()
コールまたはOCIAnyDataCollAddElem()
コールを使用してピース単位で構成することができます。
コメント
このコールは、このスケルトン・インスタンスをOCIAnyData
パラメータを介して戻します。このインスタンスは、後でOCIAnyData APIを呼び出して構成できます。
ノート:
古い値は破棄されません。一連のコールを開始する前に、(*data
)が指し示す古い値を破棄し、(*data
)をNULL
ポインタに設定する必要があります。戻されたOCIAnyData
では、(OCIType
情報またはデータ部分の)ディープ・コピーは行われません。このOCIAnyData
は、OCIAnyDataSet
の割当て時間を超えて使用することはできません(OCIAnyDataSet
への参照と同様です)。戻されたOCIAnyData
をこの関数に対する後続のコールで再使用すると、新規のデータ・インスタンスをOCIAnyDataSet
に後で追加できます。
30.4.2 OCIAnyDataSetBeginCreate()
指定の継続時間に対してOCIAnyDataSet
を割り当て、型情報を使用して初期化します。
用途
OCIAnyDataSet
は、指定の型のインスタンスを複数保持できます。
構文
sword OCIAnyDataSetBeginCreate ( OCISvcCtx *svchp, OCIError *errhp, OCITypeCode typecode, const OCIType *type, OCIDuration dur, OCIAnyDataSet **data_set );
パラメータ
- svchp (IN)
-
OCIサービス・コンテキストです。
- errhp (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。 - typecode (IN)
-
OCIAnyDataSet
に対応する型コードです。 - type (IN)
-
OCIAnyDataSet
に対応する型です。型コードが組込みの型(OCI_TYPECODE_NUMBER
など)に対応している場合、このパラメータはNULL
にできます。また、ユーザー定義型(OCI_TYPECODE_OBJECT
、OCI_TYPECODE_REF
、コレクション型など)の場合は、NULL
以外になります。 - dur (IN)
-
OCIAnyDataSet
が割り当てられる継続時間です。次のいずれかです。-
以前に作成されたユーザー期間。これは、
OCIDurationBegin()
を使用して作成できます。 -
OCI_DURATION_SESSION
などの事前定義の期間。
-
- data_set (OUT)
-
初期化済の
OCIAnyDataSet
です。
コメント
パフォーマンス向上のために、OCIAnyDataSet
は最終的に、渡されたOCIType
パラメータを指し示します。OCIType
の継続時間が延長されていることを確認する必要があります(OCIType
が一時パラメータの場合は割当て時間 >= OCIAnyData
の継続時間、OCIType
が永続パラメータの場合は割当てまたは確保継続時間 >= OCIAnyData
の継続時間)。
関連トピック
30.4.3 OCIAnyDataSetDestroy()
OCIAnyDataSet
を解放します。
用途
OCIAnyDataSet
を解放します。
構文
sword OCIAnyDataSetDestroy ( OCISvcCtx *svchp, OCIError *errhp, OCIAnyDataSet *data_set );
関連トピック
30.4.4 OCIAnyDataSetEndCreate()
OCIAnyDataSet
作成の終わりをマークします。
用途
この関数は、すべてのインスタンスを構成した後にコールしてください。
構文
sword OCIAnyDataSetEndCreate ( OCISvcCtx *svchp, OCIError *errhp, OCIAnyDataSet *data_set );
関連トピック
30.4.5 OCIAnyDataSetGetCount()
OCIAnyDataSet
のインスタンス数を取得します。
用途
OCIAnyDataSet
のインスタンス数を取得します。
構文
sword OCIAnyDataSetGetCount( OCISvcCtx *svchp, OCIError *errhp, OCIAnyDataSet *data_set, ub4 *count );
関連トピック
30.4.6 OCIAnyDataSetGetInstance()
現行の位置にあるインスタンスに対応するOCIAnyData
を戻し、現行の位置を更新します。
用途
現行の位置にあるインスタンスに対応するOCIAnyData
を戻し、現行の位置を更新します。
構文
sword OCIAnyDataSetGetInstance ( OCISvcCtx *svchp, OCIError *errhp, OCIAnyDataSet *data_set, OCIAnyData **data );
パラメータ
コメント
OCIAnyDataSet
内のインスタンスには、順次アクセスのみ可能です。このコールは、現行の位置にあるインスタンスに対応するOCIAnyData
を戻し、現行の位置を更新します。後で、OCIAnyData
アクセス・ルーチンを使用して、インスタンスにアクセスできます。
関連トピック