例: ODBCの入力/出力引数 - Teradata Database - Teradata Vantage NewSQL Engine - 例: ODBCの入力/出力引数

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

例: ODBCの入力/出力引数

以下の例は、ODBCアプリケーションで入力引数と出力引数を指定したストアド プロシージャの使用法を示したものです。

以下のように定義したストアド プロシージャspSample2について考えてみましょう。

     CREATE PROCEDURE spSample2(
       OUT p1   INTEGER,
       INOUT p2 INTEGER,
       IN p3    INTEGER)
      BEGIN
        SET p1 = p3;
        SET p2 = p2 * p3;
      END;

引数は、以下のいずれかの書式で指定できます。

     SQLBindParameter(..., 1, SQL_PARAM_INPUT_OUTPUT, ..., SQLINTEGER,      ..., ..., AppVar2, sizeof(AppVar2), ...);
     SQLBindParameter(..., 2, SQL_PARAM_INPUT, ..., SQLINTEGER, ...,      ..., AppVar3, sizeof(AppVar3), ...);

SQLBindParameter()の2番目の引数は疑問符の番号であり、左から右に向かって1からの通し番号となります。

このストアド プロシージャを実行します。

     {
     constchar *request = "CALL spSample2(p1, ?, ?)";
     ...
     ...
     SQLExecDirect(hstmt, request);
     ...
     ...
     }

出力パラメータ値を取り出します。

     SQLBindCol(..., 1, ..., AppVar1, ..., ...);
     SQLBindCol(..., 2, ..., AppVar2, ..., ...);

SQLBindCol()の2番目の引数は結果データのパラメータ番号であり、左から右に向かって1からの通し番号となります。