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