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

パスワード:


パスワード紛失

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

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
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
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010-9-14 18:30
Jiro123  長老   投稿数: 271
ヘルプのデータビューエディタ - 埋め込みSQLの
『埋め込みSQLの使用における制約事項』に、次の記載がありました。

MS-SQL Serverの場合、戻り値はSelectステートメントの結果でのみ設定可能です。出力パラメータでは指定できません。

SQLServerでは、出力パラメータを利用できないようです。

SQLServerであれば、selectステートメントを使って結果を出力するようなストアドプロシージャを記述すれば、結果を取得できると思います。

私は、あまりストアドプロシージャが得意でないので、ストアドプロシージャ自体について聞かれても、お答えできないと思いますので、ご容赦ください。

投票数:1 平均点:10.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-14 18:53
KoKaZu  新米   投稿数: 2
Jiro123 さん
ありがとうございます。

SQLServerだと取得できないんですね。。。

他の方法で正常終了/異常終了を判断する方法を考えてみます。
ストアドプロシージャ実行前にマジック側で管理テーブルにフラグ
を立て、ストアド正常終了後にフラグを戻すなど、
なんらかの方法でやってみます。

ありがとうございました。

ちなみに
ストアドプロシージャでSelect結果を取得することはできました。

投票数:0 平均点:0.00

  条件検索へ


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