PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
22792 | 06/09/26 11:14:44 | RE(2):PB7.0: ストアドからのメッセージをPB側で受けて出力したい By ichiko |
22791 | 06/09/25 19:55:56 | RE(1):PB7.0: ストアドからのメッセージをPB側で受けて出力したい By 梶 |
22790 | 06/09/25 18:32:06 | PB7.0: ストアドからのメッセージをPB側で受けて出力したい By ichiko |
カテゴリ:スクリプトの記述
日付:2006年09月25日 18:32 発信者:ichiko
題名:PB7.0: ストアドからのメッセージをPB側で受けて出力したい
こんばんは。キーワード「ストアド」や「OUT」で検索し、
1日過去ログ読みまくりましたが、どれもしっくりこず、
こんがらがるばかりで、ギブアップしました。
やりたいことは、PB側Functionにてストアドを実行し、
ストアド内で値を判断して、メッセージをユーザーに出力したいのです。
エラーではなく、メッセージです。
PB側オブジェクトFunction
[f_sp_test] int result
string get_message
DECLARE cur_sp PROCEDURE FOR sp_test
@区分 = :para_kubun,
@部署コード = :para_hokan,
@No = :para_no,
@result = :result OUTPUT,
@message = :get_message OUTPUT
;
EXECUTE cur_sp ;
IF sqlca.sqlcode = -1 THEN
MessageBox(\"sp_test error\",sqlca.sqlerrtext,StopSign!)
ROLLBACK ;
return FALSE
ELSE
Fetch cur_sp
Into :get_message;
close cur_sp;
messagebox(\"sp_test\",get_message)
END IF
-------------------------------------------------------------------
ストアドプロシジャ
[sp_test]
CREATE PROCEDURE sp_test
@区分 int
,@部署コード char(6)
,@No CODE
,@result int=0 output
,@message varchar(255) output
AS
begin
declare @依頼区分 int
select @依頼区分 = 区分1
from 部署マスタ
where 部署コード = @部署コード
if @依頼区分 <> 2
begin
select @result = 1
,@message = \'部署コード\' + @部署コード + \'は処理対象外です\'
return
end
一応こんな感じで試してはみたのですが、
PBデバックにて、どちらの変数にも値は入りませんでした。
本来ならば、SQLの掲示板に行くべきかもしれませんが、
PBとストアドの受け渡し方で約束事などあれば、教えてください。
よろしくお願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Microsoft SQL Server Client 7.0
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Microsoft SQL Server 7.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.