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アクセス・ルーチンを使用して、インスタンスにアクセスできます。
関連トピック