| 分類:[データベース全般]
お世話になります。
【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 |