PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
4243 | 98/12/03 15:52:58 | RE(4):PB6: DBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以外) By こてちゅ |
4241 | 98/12/03 13:52:46 | RE(3):PB6: DBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以外) By Gamer |
4232 | 98/12/02 19:29:20 | RE(2):PB6: DBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以外) By non-kun |
4231 | 98/12/02 19:17:07 | RE(1):PB6: DBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以外) By こてちゅ |
4222 | 98/12/02 19:19:30 | PB6: スクリプト内のSQL文のDBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以 By non-kun |
カテゴリ:スクリプトの記述
日付:1998年12月03日 13:52 発信者:Gamer
題名:RE(3):PB6: DBエラー時にエラーが起きたイベント・行を取得したい!(グローバル変数使用以外)
non-kunさん、こてちゅさん、こんにちは。
>>どうも。
>>
>>
>>>この際にSQLCA情報を全て出力しているのですが、これではデバッグ時にどこのSQL文で落ちている
>>>のかを確認できないので、error.objecteventとerror.lineと同じものを取得できたらうれしいの
>>>ですが・・・。
>>>
>>
>>どのオブジェクトか?ってのは、
>>This.ClassName()
>>とすれば、取れるんですけど・・・・
>>イベントとかは・・・???
>>
>>デバッグの為だけなら、トレース取るしかないんじゃないですかねぇ?
>>ごめんなさい、答えになっていなくってm(__)m
>>
>
>こてちゅさん、こんにちは。いつもお世話になってます。
>通常、systemerrorイベントではerror.*****情報は取得できるのですがDBエラー時にはsystemerrorイベント
>は動きませんので、強引にsystemerrorイベントを読んでしまおうかと思ったのですが・・・・。
>いいんでしょうか?
>
>実際のヘルプディスクでログ参照して、エラー個所を特定する手助けをやりたいのです。
>やっぱり、トレースを取るしかなさそうですね! (^o^)
>
>トレースを取る方向で仕様を変更してみます。
>なにかいい知恵がありましたら、引き続きお願いします。
>
あんまり参考になるかどうか...
PopulateError()関数や、SignalError()関数を使ってみてはいかがでしょうか?
そうすると、エラーの発生したオブジェクト名、行番号がErrorオブジェクトに格納され、
SignalError()関数で、SystemError()イベントを起動してくれます。
が、実行版を作成するとき、エラー情報をチェックしなくてはならないので、DLLのサイズが
大きくなったりしますので、デバッグ時の使用にした方が良いと思います。
P-Codeでどうなるかは良く分かりません。
でも、うちの開発では、エラーハンドリングとして使用しています。
まだ、PB初心者が多く、システム保守をする担当が別なので、部品のどの位置でエラーが起きた
のかをすぐに認識できるように、本番でも実装してしまいました。
PCも程々のスペックのものを導入するので妥協してしまいました。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.