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 (記載なし)

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