Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

コマンド

キーワード

開発者用メモ

EXECUTE
















CALL

必須。ストアド・プロシージャの名前。

CALLTYPE



*QUERY

任意。ストアド・プロシージャで使用する SQL ステートメントのタイプを指定します。
ストアド・プロシージャの SQL ステートメントがクエリーの場合、CALL によって結果セットが作業リストに返されます。
デフォルト。

*UPDATE

ストアド・プロシージャの SQL ステートメントが更新、挿入または削除の場合、CALL によって (更新されたレコード数の) 行数が #JSMMSG フィールドに返されます。

*EXECUTE

このキーワードを指定した場合、ストアド・プロシージャでは何も返されません。

CALLSYNTAX


*JDBC

任意。標準の JDBC 構文を使用することを示します。
デフォルト。

*ORACLE

Oracle の JDBC 構文を使用することを示します。

RETURN










*NONE

任意。ストアド・プロシージャ/ファンクションからの戻り値のデータ・タイプを指定します。 値は何も返されません。
デフォルト。

*CHAR


*STRING


*SMALLINT


*INTEGER


*FLOAT


*DOUBLE


*DECIMAL


*NUMERIC


*ORACLECURSOR

返される値は、Oracle クエリーの結果セットにアクセスする際に代替として使用されるカーソルになります。
これは、Oracle ドライバーを使用する Oracle データベースでのみ使用できます。

...

****************** データ開始 *************************************
CREATE PROCEDURE JSMJDBC/CALLSELECT(IN CODE CHAR (10))
LANGUAGE SQL
READS SQL DATA
RESULT SETS 1
 
BEGIN
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR (5) DEFAULT '00000';
 
DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR
 
SELECT ID,NAME,AGE FROM JSMJDBC/TBLNAME WHERE ID = CODE;
 
OPEN C1;
 
END
 ****************** データ終了 *************************************
 
 ****************** データ開始 *************************************
CREATE PROCEDURE JSMJDBC/CALLUPDATE(IN CODE CHAR (10))
LANGUAGE SQL
MODIFIES SQL DATA
 
BEGIN
DECLARE SQLCODE INTEGER DEFAULT 0;
DECLARE SQLSTATE CHAR (5) DEFAULT '00000';
DECLARE num_records INTEGER;
 
UPDATE JSMJDBC/TBLNAME SET SALARY=12000.43 WHERE ID = CODE;
 
GET DIAGNOSTICS num_records = ROW_COUNT;
 
RETURN num_records;
 
END

...

SET PARAMETER(*LIST) #WRKLST(PARM1)
EXECUTE CALL("CALLSELECT(?)") CALLTYPE(*QUERY)

SET PARAMETER(*LIST) #WRKLST(PARM1)
EXECUTE CALL("CALLUPDATE(?)") CALLTYPE(*UPDATE) RETURN(*INTEGER)

 
SET PARAMETER(*LIST) #WRKLST(PARM1)
EXECUTE CALL("CALLEXECUT(?)") CALLTYPE(*EXECUTE) RETURN(*INTEGER)

...

#JSMCMD := 'Execute("CallSelect(?)") CallType(*QUERY)'
Use Builtin Use Builtin (JSM_COMMAND)  WithWith_Args(#JSMHND #JSMCMD#JSMHND #JSMCMD)  ToTo_Get(#JSMSTS #JSMMSG #WRKLST#JSMSTS #JSMMSG #WRKLST)