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