ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

SQLServer 2005 ストアドプロシージャの戻り値を取得する。

このトピックの投稿一覧へ

質問 SQLServer 2005 ストアドプロシージャの戻り値を取得する。

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-14 17:15
KoKaZu  新米   投稿数: 2
Magic uniPasS V1Plus
SQL Server2005
でトアドプロシージャを実行するプログラムを作成中です。
ストアドの実行結果を取得したいのですがうまくいきません。

ヘルプ SQL データベース, ストアドプロシージャの実行
には以下のように記載があります。

[SQLコマンド]ダイアログで
EXEC ? = proc_name

と記述し

[戻り値]欄に変数項目を指定する
とあります。
それに従い以下のように記述しました。

EXEC ? = sp_TH3060_集計 :1
戻り値:には論理型の変数を指定。
(数値型も試しましたが同じでした)
実行すると以下のようなエラーメッセージで実行できません。
>> イベント処理中 [ エラー: SQLコマンドが正しくない \\DB エラーコード 0 ] コントロール名 : [ 無効 ]

以下のようにして、戻り値の設定をしない場合ストアドプロシージャは正常に実行され更新がかかっています。

EXEC sp_TH3060_集計 :1
戻り値:※指定しない。
:1には文字列で'31','2010/07/31'というよな引数をセットしています。

呼出すストアドプロシージャは以下です。
(実験用に単純化して一部のみを残して実行しています)

USE [ERA]
GO
/****** Object: StoredProcedure [dbo].[sp_TH3060_集計] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_TH3060_集計]
(
@締日 int,
@請求日 varchar(10) ) AS

BEGIN TRY

BEGIN TRANSACTION

/*集計日の更新*/
UPDATE MA_管理
SET 締集計日=@締日,請求集計日=@請求日
WHERE 管理CD=1


COMMIT TRANSACTION

END TRY

BEGIN CATCH
RETURN
ROLLBACK TRANSACTION
END CATCH


マジックの記述がまずいのか、
ストアドプロシージャ側に何か記述しなければいけないのか
わかりません。。。

マジックをはじめて数ヶ月で、
他に設定箇所があるのかもよくわからず投稿いたしました。
ここの情報があれば原因がわかる というようであれば調べますので、わかる方いらっしゃったら教えていただけないでしょうか。
よろしくお願いいたします。
投票数:0 平均点:0.00

投稿ツリー

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約