ストアドプロシジャ

ストアドプロシジャは、アプリケーションロジックの一部をサーバで実行するための強力な方法です。ストアドプロシジャは、SQLコマンドタスクを使用して、Magic xpaから呼び出すことができます。

Magic xpaからCOMMITステートメントを送った場合は、すべてのコネクションがコミットされます。

ストアドプロシジャの構文はデータベースによって異なります。したがって、この機能を使用するか、アプリケーションの移植性を優先するかを選択しなければなりません。

MS-SQL Serverでのストアドプロシージャ

Magic xpaは、MS-SQL Serverに対するストアドプロシージャーで戻り値をサポートします。

これを実装するには、[SQLコマンド]ダイアログボックス内に入力するステートメントに、以下の構文を含めなければなりません。

? =

例えば以下のように指定します。

EXEC?= proc_name

[戻り値]欄にで変数項目を指定する必要があります。

戻り値が BOOLEAN か、ステートメントに上記の構文がや戻り値が含まれていない場合、Magic xpaはストアドプロシージャーのステータス(成功/失敗)を表示するだけです。

注意:

出力が無い場合、ストアドプロシージャーは戻り値として空白を返します。このような場合、戻り値を取得するために、ストアドプロシージャーでダミーのSelectステートメントを定義してください。

 

Magic xpaでは、開発者が(SQLサーバで)どのSelectステートメントで戻り値を返すかを決めることができます。

これを実装するには、[SQLコマンド]ダイアログボックス内のSQLステートメントに以下の構文を追加する必要があります。

/*=== ROWSET=n ===*/

nは、戻したいSelectステートメントの番号を示しています。

例えば以下のように指定します。

例:/*=== ROWSET=5 ===*/

この場合、5番目の結果セットが返ります。

現存していないROW-IDを指定するとエラーメッセージが返ります。

Magic xpaでは、SQL Serverのストアドプロシジャ内のDSQLステートメントでカーソルを使用することができます。また、結果セットを戻すDSQLステートメントでのカーソルの使用をサポートしています。

これは、ダイレクトSQLステートメントに以下の構文を追加することで可能になります。

/*===CURSOR=Y ===*/

 

カーソルを参照してください。

Oracleでのストアドプロシージャー

 INOUTまたはOUTパラメータがないプロシージャは、PL/ SQLブロックとして呼び出す必要があります。

begin procname (par1 int, par2 int); end;

 

プロシージャに複数のパラメータを使用することができる場合、パラメータをカンマで区切ります。OracleパラメータがINOUTまたはOUTでない場合は、APGボタンを選択してからプロシージャを実行する必要があります。ストアドプロシジャにはOUTパラメータを入力しないでください。代わりに、プレイスホルダとしてカンマを使用します。プロシージャの終わりに句読点を追加しないでください。