• 締切済み

ストアドプロシージャのbegin、end

下記の様なストアドプロシージャを作成し、VB側から実行させています。 どうしても、★SQL文2★の後のreturn文を実行してくれません。 (VB側ではreturn値が0と判断します。) このreturn文を★SQL文2★の前に移動すると、return値が-1として正常に取得できます。 begin、endのブロックの記述に何か間違いがあるのでしょうか? 環境:sqlserver2000,windows2000,vb6 よろしくお願いします。 CREATE PROCEDURE [sp_AAA] @PARAM1 varchar(16) AS begin if (~) begin ★SQL文1★ if (@@ERROR <> 0) begin return @@ERROR end end ★SQL文2★ return -1 ←ココ end

みんなの回答

  • Azzuri
  • ベストアンサー率68% (34/50)
回答No.1

CREATE FUNCTIONを使用してください。

Vargas
質問者

お礼

結局、VB側からadoのリターンコードのハンドリングがうまく行っていなかった様で、上記ストアドは正しかった様です。クエリアナライザで再確認したところ、-1が正しく返っていました。(質問した時点でも確認したつもりだったのですが当方の勘違いだった様です。)お騒がせして申し訳ありませんでした。

Vargas
質問者

補足

時間が立ってしまい大変申し訳ありませんでした。プロシージャでも整数のリターン値等は返却できますよね?なぜ上記ではSQL文2の後のリターンが返って来ないのでしょうか?なんとなく、begin~endの使用が間違っているのかなと思いますが。もう少し調べてみます。

関連するQ&A