C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 34 を表示中)
■16635 / )  【SQLServer2005】ストアドプロシージャについて
□投稿者/ OOO (4回)-(2008/04/09(Wed) 09:00:01)

分類:[データベース全般] 

お世話になります。

【Visual Studio2005】
【SQLServer2005】
にてストアドプロシージャ(SP)の開発をしております。

今回はSPについての質問になります。
例えば、一つのSP内に結果セットが二つ存在する場合に画面側に返す時、
アウトプットパラメータとして、データセットを指定することはできたりするのでしょうか?
下記の例でいうと二つ結果セットが生まれますが、画面側にどのように返せばよいかが不明な状態です。

基本的なことかもしれませんが、どうかご教授お願いいたします。


例:
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.SP10060102'))
   DROP procedure dbo.SP10060102
GO

SET QUOTED_IDENTIFIER  ON
SET ANSI_NULLS  ON
GO

CREATE PROCEDURE TEST1
/*--------------------------------------------------------------------------------
  < Explanation >
----------------------------------------------------------------------------------
    【システム名】社内システム
    【作成者】OOO
    【作成日】2008/04/09
    【処理概要】データを取得する。

    【修正履歴】

----------------------------------------------------------------------------------
  < Arguments Section >
--------------------------------------------------------------------------------*/
         @Ng                                    TypNengetsu6            -- 年月         
        ,@HjnCd                                 TypHoujinCd             -- 法人コード
        ,@pErrKbn                               TypCheck        OUTPUT  -- エラー区分 "0":存在しない "1":存在する

AS
BEGIN
/*--------------------------------------------------------------------------------
  < Valuables Section >
--------------------------------------------------------------------------------*/
    DECLARE  @error         INT
    DECLARE  @rowcount      INT
/*--------------------------------------------------------------------------------
    < Main Code Section >
--------------------------------------------------------------------------------*/
       -- 一つ目の結果セット
        SELECT         
                 H1.HjnCd                               AS      HjnCd                   -- 法人コード
                ,H2.HjnMe_Ryakushou                     AS      HjnMe_Ryakushou         -- 法人名称(略称)
                ,H1.Ng                                  AS      Ng                      -- 年月         
                ,H1.UkZgkrkDk                           AS      UkZgkrkDk               -- 売掛前月繰越高               
                ,H1.UaKei                               AS      UaKei                   -- 売上計               
                ,H1.HkeKn                               AS      HkeKn                   -- 振替金額             
                ,H1.ChouseiKn                           AS      ChouseiKn               -- 調整金額             
                ,H1.SousaiKn                            AS      SousaiKn                -- 相殺金額             
                ,H1.NkKnGkn                             AS      NkKnGkn                 -- 入金金額現金         
                ,H1.NkKnKgt                             AS      NkKnKgt                 -- 入金金額小切手               
                ,H1.NkKnGinHkm                          AS      NkKnGinHkm              -- 入金金額銀行振込     
                ,H1.NkKnYbnHke                          AS      NkKnYbnHke              -- 入金金額郵便振替     
                ,H1.NkKnUketoriTg                       AS      NkKnUketoriTg           -- 入金金額受取手形     
                ,H1.TgZgkrkDk                           AS      TgZgkrkDk               -- 手形前月繰越高               
                ,H1.UkTgtZn                             AS      UkTgtZn                 -- 売掛当月残高         
                ,H1.SakihidukeKgtTgtZn                  AS      SakihidukeKgtTgtZn      -- 先日付小切手当月残高 
                ,H1.UkZnUchiTsjHin                      AS      UkZnUchiTsjHin          -- 売掛残高内通常品     
                ,H1.UkZnUchiTkbHin                      AS      UkZnUchiTkbHin          -- 売掛残高内特別品     
                ,H1.UkZnUchiHsHin                       AS      UkZnUchiHsHin           -- 売掛残高内販促品     
                ,H1.YoshinGendoGk                       AS      YoshinGendoGk           -- 与信限度額           

        FROM    (  DchHoujinbetsuZandakaGenzai AS H1   ( NOLOCK )                       -- 法人別残高(現在残高)
            INNER JOIN
                   MstHoujin AS H2  ( NOLOCK )                                          -- 法人マスタ
                   ON H1.HjnCd = H2.HjnCd
                )
        WHERE
                ((H1.Ng   =   @Ng  ) OR ( @Ng   IS NULL))
          AND   ((H1.HjnCd   =   @HjnCd  ) OR ( @HjnCd   IS NULL))
		
		-- 二つ目の結果セット
		SELECT 
				A1.MMKC
		FROM
				KMNJKL AS A1
		WHERE
				((A1.Ng   =   @Ng  ) OR ( @Ng   IS NULL))
				
	
		
    SELECT  @error      = @@ERROR ,
            @rowcount   = @@ROWCOUNT

    IF @error <> 0      -- エラー
    BEGIN
        RAISERROR (@error,0,1)
        RETURN @error
    END

    IF @ROWCOUNT = 0
        SELECT @pErrKbn = '1'
    ELSE
        SELECT @pErrKbn = '0'

    RETURN @error

END
GO

返信 編集キー/


管理者用

- Child Tree -