例: 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からの通し番号となります。