例: ODBCの入力/出力引数 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.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からの通し番号となります。