PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
2035 98/06/24 16:15:02 RE:RE:PB5.0.03: DECLARE PROCEDURE文について By Hiko
2032 98/06/24 15:20:13 RE:PB5.0.03: DECLARE PROCEDURE文について By Taka
2028 98/06/24 14:03:55 PB5.0.03: DECLARE PROCEDURE文について By Hiko

カテゴリ:旧電子会議室
日付:1998年06月24日 15:20 発信者:Taka
題名:RE:PB5.0.03: DECLARE PROCEDURE文について

>プロシージャの宣言として
>DECLARE emp_proc PROCEDURE FOR :is_objname (:ls_buff) USING TRORA;
>と記述しているのですが、
>コンパイルをすると、データベースエラーが発生します。

これは、静的SQLのやりかたです。
静的SQLでは、プロシジャ名を変数で与えることはできません。

>プロシージャ名に、変数を使用することは、不可能なのでしょうか?

そういうのは、動的SQLの記述で対処しなければなりません。
(SELECTやUPDATE文においてテーブル名を変数で与えたい場合と同じです)

以下サンプルです。

string ls_command, ls_parm1
ls_command = \"EXECUTE PROC_TEST1(?)\"
ls_parm1 = \"値\"
DECLARE proc DYNAMIC PROCEDURE FOR SQLSA ;
PREPARE SQLSA FROM :ls_command USING SQLCA ;
EXECUTE DYNAMIC proc USING :ls_parm1 ;
if SQLCA.sqlcode <> 0 then
  < エラー処理 >
end if
FETCH proc INTO < 戻り値の受け取り用変数 > ;
CLOSE proc ;

詳しくはヘルプにて。以上。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.