PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
2182 98/07/01 11:13:53 RE:動的SQLはここがポイント By Hiko
2175 98/06/30 19:55:44 動的SQLはここがポイント By Taka
2165 98/06/30 14:43:09 RE:RE:RE:RE:PB5.0.03: EXECUTE実行後のSQLCode値について By Hiko
2162 98/06/30 12:03:05 RE:RE:RE:PB5.0.03: EXECUTE実行後のSQLCode値について By Taka
2157 98/06/30 10:21:54 RE:RE:PB5.0.03: EXECUTE実行後のSQLCode値について By Hiko
2146 98/06/29 15:37:04 RE:PB5.0.03: EXECUTE実行後のSQLCode値について By Taka
2105 98/06/26 10:04:53 PB5.0.03: EXECUTE実行後のSQLCode値について By Hiko

カテゴリ:旧電子会議室
日付:1998年06月30日 10:21 発信者:Hiko
題名:RE:RE:PB5.0.03: EXECUTE実行後のSQLCode値について

Taka様、いつもありがとうございます。
さっそく、デバッガでおって確認してみたのですが、
どうもうまくいきません。
まだ、他にミスをしているところがあるのでしょうか?
この際、コーディングチェックをお願いできませんか?

Integer li_ret = 777 
Any ls_data[10]
String ls_buff,ls_buff2
Long ll_data_cnt, ll_cnt

ll_data_cnt = dw_objname_input.RowCount()
IF ll_data_cnt > 0 THEN
ls_buff = \"(\"
FOR ll_cnt = 1 TO ll_data_cnt - 1
ls_buff = ls_buff + \"?,\"
NEXT
ls_buff = ls_buff + \"?)\"
ELSE
Close(w_syori_msg)
RETURN
END IF

String ls_sqlstatment

// プロシージャ宣言文の作成
ls_sqlstatment = \"EXECUTE \" + is_objname + ls_buff

DECLARE emp_proc DYNAMIC PROCEDURE FOR SQLSA;
PREPARE SQLSA FROM :ls_sqlstatment USING TRORA;

FOR ll_cnt = 1 TO ll_data_cnt - 1
ls_buff2 = ls_buff2 + \":ls_data[\" + String(ll_cnt) + \"], \"
NEXT
ls_buff2 = ls_buff2 + \":ls_data[\" + String(ll_cnt) + \"]\" 

FOR ll_cnt = 1 TO ll_data_cnt
ls_data[ll_cnt] = dw_objname_input.GetItemString(ll_cnt, \"as_objname\")
NEXT

// プロシージャの実行
EXECUTE DYNAMIC emp_proc USING :ls_buff2;
IF TRORA.SQLCode <> 0 THEN
MessageBox(\"エラー\",\"プロシージャの実行に失敗しました。\" + TRORA.SQLErrText)
/////// ここで、SQLCodeが100になります。/////////

ELSE
FETCH emp_proc INTO :li_ret;
MessageBox(\"実行結果\", \"プロシージャのリターン値・・・\" +  String(li_ret))
END IF

以上です。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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