PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
9931 | 00/01/19 19:17:53 | RE(3):PB6: UpDate関数がうまくいきません By Taka |
9930 | 00/01/19 19:04:39 | RE(2):PB6: UpDate関数がうまくいきません By katsuo |
9927 | 00/01/19 17:32:14 | RE(1):PB6: UpDate関数がうまくいきません By こてちゅ |
9926 | 00/01/19 16:58:51 | PB6: UpDate関数がうまくいきません By katsuo |
カテゴリ:データウィンドウ
日付:2000年01月19日 19:17 発信者:Taka
題名:RE(3):PB6: UpDate関数がうまくいきません
katsuoさん、こんばんは。
>ImportFileまではうまくいくのですが、UpDateのときSQLCA.SQLNRows=0でうまくいきません。
コントロール側のUpdateEndイベントの引数3つを合計して判定するようにします。
【以下補足】
データウィンドウでは、Retrieve関数,Update関数などの直後にSQLCA.プロパティを見ても値は入っていません。
このプロパティは「直前に実行した埋め込みSQL(CONNECT/DISCONNECT/COMMIT/ROLLBACK含む)」の結果が温存されて
いる仕様になっており、データウィンドウの関数の結果は反映されないんです。
ナゼこんな仕様かは不明ですが、昔からそうでした。 (^^;
よく、
rtn = dw_1.Retrieve()
if rtn = -1 then
MessageBox( \"ERROR\", \"検索に失敗しました。\" + SQLCA.SQLErrText )
end if
とやってしまう方が多いですが、このようなケースでは戻り値が-1でもそのエラー内容は SQLCA.SQLErrText では
見ることはできません。コントロールのDBErrorイベントの引数を使いましょう。(Update関数も同様です)
例えば、
(1) *** 埋め込みSQLでの処理 ***
(2) if SQLCA.SQLCode <> 0 then MessageBox( .. ,SQLCA.SQLErrText )
(3) dw_1.Retrieve()
(4) if SQLCA.SQLCode <> 0 then MessageBox( .. ,SQLCA.SQLErrText )
のような場合、
(1)の処理でエラー発生
(2)でエラー内容を表示
(3)の検索は正常終了
(4)でも(2)のエラー内容が表示される!
といった動きになります。SQLNRowsでも同じ事が言えます。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.