18.2.6 CLI関数を使用する場合の留意事項
ここでは,CLI関数の引数に指定するアドレスの有効期間および境界位置調整について説明します。
- 〈この項の構成〉
(1) 領域の有効期間
CLI関数の引数に,アドレスが指す領域が解放されている無効なアドレスが指定されている場合,動作は保証されません。
CLI関数にアドレスを指定する引数のうち,次に示す引数は処理の開始から終了までの間,有効であることを保証する必要があります。
-
HADBサーバへの接続から切り離しまでの間,有効であることを保証する必要がある引数
次に示す引数が該当します。
-
各CLI関数のConnectionHandle
-
a_rdb_SQLConnect()のResultInfo(SQL結果情報を取得する場合)
-
-
カーソルのオープンからクローズまでの間,有効であることを保証する必要がある引数
次に示す引数が該当します。
-
a_rdb_SQLBindCols()のColumnInfo構造体のメンバTargetValueおよびStrLen_or_Ind
-
a_rdb_SQLBindParams()およびa_rdb_SQLBindArrayParams()のParameterInfo構造体のメンバParameterValueおよびInd
a_rdb_SQLBindParams()およびa_rdb_SQLBindArrayParams()の引数については,カーソルを使用しないSQLを前処理する場合でも,a_rdb_SQLExecute()を実行するまで領域が有効であることを保証してください。
-
なお,トランザクションの開始から終了までの間,有効であることを保証する必要がある引数はありません。
(2) 境界位置調整
検索結果のデータや,?パラメタの入力値などを格納する領域の先頭アドレスは,SQLのデータ型ごとに次の表に従って境界位置調整を行ってください。
項番 |
SQLデータ型 |
境界位置調整 |
---|---|---|
1 |
VARBINARY型 |
2バイト境界 |
2 |
SMALLINT型 |
4バイト境界 |
3 |
VARCHAR型 |
|
4 |
INTEGER型 |
8バイト境界 |
5 |
BIGINT型 |
|
6 |
DOUBLE PRECISION型 |
|
7 |
FLOAT型 |