28.8 OCI表関数
OCI表関数をリストし、説明します。
表28-17は、この項で説明しているOCI表関数を示しています。
表28-17 表関数
関数 | 用途 |
---|---|
要素を削除します |
|
要素が存在するかどうかをテストします。 |
|
表の先頭の索引を戻します。 |
|
表の最後の索引を戻します。 |
|
使用可能な次の表索引を戻します。 |
|
使用可能な1つ前の表索引を戻します。 |
|
表のカレント・サイズを戻します。 |
28.8.1 OCITableDelete()
指定の索引位置にある要素を削除します。
用途
指定の索引位置にある要素を削除します。
構文
sword OCITableDelete ( OCIEnv *env, OCIError *err, sb4 index, OCITable *tbl );
パラメータ
コメント
この関数は、指定した索引の要素がすでに削除されている場合、または指定した索引が表に対して無効の場合は、エラーを戻します。
注意:
表の残りの要素の位置序数は、OCITableDelete()
で変更されません。削除操作により、表に穴が作成されます。
戻り値
入力パラメータがNULL
である場合はエラーも戻されます。
28.8.2 OCITableExists()
指定の索引位置に要素が存在するかどうかをテストします。
用途
指定の索引位置に要素が存在するかどうかをテストします。
構文
sword OCITableExists ( OCIEnv *env, OCIError *err, const OCITable *tbl, sb4 index, boolean *exists );
パラメータ
- env (IN/OUT)
-
オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、
OCIEnvCreate()
、OCIEnvNlsCreate()
およびOCIInitialize()
(非推奨)の説明を参照してください。 - err (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。 - tbl (IN)
-
指定の索引をチェックする表です。
- index (IN)
-
要素の存在をチェックする索引です。
- exists (OUT)
-
指定する
index
に要素が存在する場合はTRUE
です。それ以外の場合は、FALSE
です。
戻り値
この関数は、入力パラメータがNULL
である場合はエラーを戻します。
28.8.3 OCITableFirst()
指定の表の先頭の既存要素の索引を戻します。
用途
指定の表の先頭の既存要素の索引を戻します。
構文
sword OCITableFirst ( OCIEnv *env, OCIError *err, const OCITable *tbl, sb4 *index );
パラメータ
コメント
OCITableDelete()
によって表の先頭の5つの要素が削除されている場合、OCITableFirst()
は値6を戻します。
関連項目:
表内のデータのない空き(削除された要素)に関する情報は、「OCITableDelete()」を参照してください。
戻り値
この関数は、表が空の場合はエラーを戻します。
28.8.4 OCITableLast()
表の最後の既存要素の索引を戻します。
用途
表の最後の既存要素の索引を戻します。
構文
sword OCITableLast ( OCIEnv *env, OCIError *err, const OCITable *tbl, sb4 *index );
パラメータ
コメント
OCITableLast()
は、索引付き整数コレクション内で最大の索引番号が付いた要素を戻します。
戻り値
この関数は、表が空の場合はエラーを戻します。
28.8.5 OCITableNext()
表の次の既存要素の索引を戻します。
用途
表の次の既存要素の索引を戻します。
構文
sword OCITableNext ( OCIEnv *env, OCIError *err, sb4 index, const OCITable *tbl, sb4 *next_index boolean *exists );
パラメータ
- env (IN/OUT)
-
オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、
OCIEnvCreate()
、OCIEnvNlsCreate()
およびOCIInitialize()
(非推奨)の説明を参照してください。 - err (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。 - index (IN)
-
スキャンの開始位置の索引です。
- tbl (IN)
-
スキャンする表です。
- next_index (OUT)
-
tbl
(index
)の次の既存要素の索引です。 - exists (OUT)
-
次の索引が存在しない場合は
FALSE
で、存在する場合はTRUE
です。
戻り値
index
よりも大きく、exists(j)
がTRUE
になるような最小位置j
を戻します。
関連項目:
表内のデータのない空き(削除された要素)の存在に関する情報は、「OCITableSize()」の説明を参照してください。
28.8.6 OCITablePrev()
表の直前の既存要素の索引を戻します。
用途
表の直前の既存要素の索引を戻します。
構文
sword OCITablePrev ( OCIEnv *env, OCIError *err, sb4 index, const OCITable *tbl, sb4 *prev_index boolean *exists );
パラメータ
- env (IN/OUT)
-
オブジェクト・モードで初期化されたOCI環境ハンドルです。詳細は、
OCIEnvCreate()
、OCIEnvNlsCreate()
およびOCIInitialize()
(非推奨)の説明を参照してください。 - err (IN/OUT)
-
OCIエラー・ハンドルです。エラーがある場合は、
err
に記録され、OCI_ERROR
が戻されます。OCIErrorGet()
をコールして診断情報を取得します。 - index (IN)
-
スキャンの開始位置の索引です。
- tbl (IN)
-
スキャンする表です。
- prev_index (OUT)
-
tbl
(index
)の直前の既存要素の索引です。 - exists (OUT)
-
前の索引が存在しない場合は
FALSE
で、存在する場合はTRUE
です。
戻り値
index
よりも小さく、exists(j)
がTRUE
になるような最大位置j
を戻します。
関連項目:
表内のデータのない空き(削除された要素)の存在に関する情報は、「OCITableSize()」の説明を参照してください。
28.8.7 OCITableSize()
指定の表のサイズを戻します。削除済の要素によって生成された空きは含まれません。
用途
指定の表のサイズを戻します。削除済の要素によって生成された空きは含まれません。
構文
sword OCITableSize ( OCIEnv *env, OCIError *err, const OCITable *tbl sb4 *size );
パラメータ
コメント
カウントは、ネストした表から要素を削除すると減分されます。したがって、このカウントには要素を削除した際に作成された穴は含まれていません。削除済の要素によって生成された空きを含むカウントを取得するには、OCICollSize()
を使用します。
次のコード例は、ネストした表から要素を削除するコード・フラグメントを示しています。
ネストした表からの要素の削除
OCITableSize(...); // assume 'size' returned is equal to 5 OCITableDelete(...); // delete one element OCITableSize(...); // 'size' returned is equal to 4
次のコード例に示すように、削除された要素を含めたカウントを取得するには、OCICollSize()
を使用します。前述のコード例を続けます。
ネストした表から削除された要素を含めたすべての要素のカウントの取得
OCICollSize(...) // 'size' returned is still equal to 5
戻り値
この関数は、ネストした表のオブジェクト・キャッシュへのロード中にエラーが発生した場合、または入力パラメータがNULL
である場合はエラーを戻します。