Hitachi

Hitachi Advanced Data Binder AP開発ガイド


19.4.7 a_rdb_SQLDescribeParams()(?パラメタの情報取得)

〈この項の構成〉

(1) 機能

SQL文中の?パラメタの情報を取得します。次に示す情報を取得します。

(2) 形式

signed short a_rdb_SQLDescribeParams
(
  void                          *ConnectionHandle,   /* In  */
  void                          *StatementHandle,    /* In  */
  unsigned short                 ParameterCount,     /* In  */
  a_rdb_SQLParameterInfo_t      *ParameterInfo,      /* Out */
  void                          *Option              /* In  */
)

(3) 引数の説明

ConnectionHandle

コネクションハンドルを指定します。

StatementHandle

文ハンドルを指定します。

ParameterCount

情報を取得する?パラメタの数を指定します。

a_rdb_SQLNumParams()で取得した?パラメタの数を指定してください。

ParameterInfo

各種パラメタ情報取得用領域のアドレスを設定するパラメタ情報領域の先頭アドレスを指定します。

a_rdb_SQLParameterInfo_t構造体をParameterCountに指定した数だけ連続させた領域を用意してください。

a_rdb_SQLParameterInfo_t構造体については,「19.7.5 a_rdb_SQLParameterInfo_t構造体(パラメタ情報)」を参照してください。

Option

NULLを指定します。

(4) 戻り値

  1. a_rdb_SQLDescribeParams()が正常に終了した場合,a_rdb_RC_SQL_SUCCESSが返却されます。

  2. ?パラメタの情報取得には成功したが,クライアントメッセージログファイルを格納しているディスクが満杯になった場合,a_rdb_RC_SQL_WARNINGが返却されます。

  3. クライアントメッセージログファイルにメッセージが出力できない場合にエラーが発生したときは,エラー要因コードが返却されます。エラー要因コードについては,「19.8 CLI関数の戻り値」を参照してください。

(5) 留意事項

  1. a_rdb_SQLDataType_t構造体のデータ型コード格納領域には,HADBによって仮定された?パラメタのデータ型を表すコード(データ型コード)が取得されます。各データ型に対応するデータ型コードについては,マニュアルHADB SQLリファレンスデータ型の種類を参照してください。

  2. a_rdb_SQLDataType_t構造体の最大要素数格納領域には,?パラメタの最大要素数が取得されます。?パラメタの最大要素数は常に1となります。

  3. a_rdb_SQLDataType_t構造体のパラメタ長格納領域とパラメタ属性格納領域には,?パラメタのデータ長に関する情報が取得されます。各領域に取得する値は,HADBによって仮定された?パラメタのデータ型に応じて,次の表に示す値になります。

    表19‒5 パラメタ長とパラメタ長属性

    項番

    データ型

    パラメタ長

    パラメタ長属性

    1

    INTEGER

    8

    0

    2

    SMALLINT

    4

    0

    3

    DECIMAL(m,n)※1

    m

    n

    4

    NUMERIC(m,n)※1

    5

    DOUBLE PRECISION

    8

    0

    6

    FLOAT

    7

    CHAR(n)

    n

    0

    8

    VARCHAR(n)

    n

    0

    9

    DATE

    4

    0

    10

    TIME(p)※2

    3+↑p÷2↑

    p

    11

    TIMESTAMP(p)※2

    7+↑p÷2↑

    p

    12

    BINARY(n)

    n

    0

    13

    VARBINARY(n)

    n

    0

    14

    ROW

    行長

    0

    (凡例)

    mnp:正の整数

    注※1

    データ型がDECIMAL型またはNUMERICの場合,パラメタ長として精度を取得します。

    また,パラメタ長属性として位取りを取得します。

    注※2

    データ型がTIME型またはTIMESTAMP型の場合,パラメタ長としてデータ長を取得します。また,パラメタ長属性として小数秒の桁数を取得します。

  4. 次に示す場合,a_rdb_SQLDescribeParams()は実行できません。

    • コネクションが確立されていない場合

    • 無効な文ハンドルを指定した場合

    • ?パラメタ数に,a_rdb_SQLNumParams()で取得した?パラメタの数以外の値を指定した場合