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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.