2013年3月19日火曜日

外部オブジェクトの使い方 : ストアドプロシージャ編その1

外部オブジェクトを利用する事でDBMSのストアドプロシージャを呼び出す事が可能になります。

例えば、以下のようなストアドプロシージャ(SQLServer)

CREATE PROCEDURE [sp_get_customer_id]
@p_country_id int,
@p_customer_id int OUTPUT
AS
BEGIN
SELECT @p_customer_id = max(CustomerId)+1 FROM Customer WHERE CountryId = @p_country_id;

RETURN;
END
をGeneXusアプリケーションから実行したい場合には

注意:あくまでも外部オブジェクトの作成方法に主眼をおいているため、ストアドプロシージャの現実的な実装(エラー処理等)は考慮していません。


1.外部オブジェクトの作成

1-1.外部オブジェクトを新規作成します。


1-2.外部オブジェクトのプロパティを設定します。



外部オブジェクトのプロパティ
Type Stored Procedure
Data Store ストアドプロシージャが登録されているデータストアを指定


1-3.メソッドを追加します。
外部オブジェクトのメソッドが1つのストアドプロシージャに相当します。




メソッドのプロパティ
Internal Name ナレッジベース内で使用するメソッド名を指定します
Type 戻り値のデータ型を指定します(適用可能な場合※)
External Name DBMSに登録してあるストアドプロシージャ名を指定します

Artechのドキュメント(wiki)ではメソッドの戻り値の指定が可能と記述がありましたが、現在のバージョンでは使用できませんでしたのでここで訂正します。

1-4.バラメータを追加します。





 パラメータのプロパティ
Access Type パラメータの入出力方向[in/out/inout]
Internal Name ナレッジベース内で使用するパラメータ名を指定します
Type パラメータのデータ型を指定します
External Name ストアドプロシージャで使用されているパラメータ名を指定します

以上で外部オブジェクトの作成は終わりです。次回は作成した外部オブジェクトを使って実際にストアドプロシージャを実行してみます。




0 件のコメント:

コメントを投稿