過去の桐井戸端BBS (桐ver.8)
4226 一括処理でハンドルエラーが発生します 桐 太郎 2000/1/20-19:00
桐v8SP3をにて一括処理を行っています。時々(不定期)にハンドルエラーが
発生して止まってしまいます。SP2の時より発生する確率は低くなったと思いま
すが、理由がわからず困っています。対処方法わかる方は、是非教えてください。
よろしくお願いします。

4243 ハンドルエラーはどの様なケースで発生しますか 佐田 守弘 2000/1/21-00:50
記事番号4226へのコメント
桐 太郎さん

私はこのエラーに出会った事がないのですが、どの様なケースでどの様な事をさせた
時に発生するでしょうか。このあたりをもう少し詳しく伝えて頂けますか。

佐田守弘(KS-00119)
4252 こんな時に発生する? 桐 太郎 2000/1/21-11:09
記事番号4243へのコメント
佐田 守弘さんは No.4243「ハンドルエラーはどの様なケースで発生しますか」で書きまし
た。
>桐 太郎さん
>
>私はこのエラーに出会った事がないのですが、どの様なケースでどの様な事をさせた
>時に発生するでしょうか。このあたりをもう少し詳しく伝えて頂けますか。
>
>佐田守弘(KS-00119)

詳しく書かなくて申し訳ありません。
以下のように多重化してオープンした時に出る傾向にあるようです。(いつも出る訳では
ありません
忘れた頃にハンドルエラーが出ます。)
このハンドルエラーが出ると、桐の制御がきかなくなり、桐を終了させても1回か2回
このメッセージが 現れます。
ちなにみ、桐V8-SP2以降にした場合は出る回数がかなり減ったと思います。

========================================
表 
   使用フォーム "MAST"
   ウィンドウ作成 "MAST",位置=(1,1 ),ハンドル=&OPEN1
繰り返し (&ボタン<>”終了”)
ウィンドウ会話 &OPEN1 ,更新=許可,許可作業=行訂正,ボタン=&ボタン
ケース開始
ケース (&ボタン="新規追加")
手続き実行 新規追加
ケース終了
繰り返し終了

終了 桐

名札 新規追加
多重化 使用フォーム="MAST-ADD",表番号=10
行追加 フォーム,終了キー=&確認,ボタン=&ボタン,終了状態=&確認2
終了 表 10
編集表 1
手続き終了
=========================================
===

4263 Re:こんな時に発生する? 佐田 守弘 2000/1/21-23:55
記事番号4252へのコメント
桐 太郎さん
書かれた一括処理からおよその事が理解できました。

●時々起きるエラー
もしこのエラーが報告されている通り、いつも起きるのではなく、時々起きるエラーだとした
らやっかいですね。もしそれがシステムの内部的な原因によるとしたら、ユーザーサイドでは
お手上げです。

ですが、一括処理を拝見して、何やら処理のさせ方その他で気になる点がいくつか見つかりま
した。外しているかも知れませんが、以下の点をチェックしてみて下さい。

●プログラム全体の構造について
お書きになった一括処理は、桐ver.7方式の一括処理からフォームを呼び出す方式ですね。
桐ver.8では考え方を全く変えてしまい、フォームから全てを起動する方式が好ましいと考え
ます。
つまり、MAST.wfmを開きます。そして、このフォームには、イベントファイル(仮にMAST.kev
とします)を割り当てておきます。
また、「新規追加」のコマンドボタンを作っておき、このボタンに機能名「手続き実行」機能
パラメータ「新規追加」を割り当てておきます。
そして、イベントファイルには、以下の手続きを定義しておきます。
手続き定義開始 新規追加()
多重化
フォーム呼出し MAST-ADD,編集表=する
行追加
手続き定義終了
ここで、MAST-ADD.wfmには「終了」ボタンを作っておき、このボタンを押したらフォームが終
了する様にしておきます。

●表番号
表番号を明に指定していますが、内部的に開いている表番号とバッティングして、エラーを
起こしているのではないかと言う気がします。表番号を指定せず、桐に勝手にしていさせる方
法を試してみて下さい。

●多重化しなくても良いのでは
表を多重化してオープンする必要があるかどうかも検討してみて下さい。

1つ目に、レコードを追加するために同じ表に対して別のフォームを開くために多重化してい
るわけですが、フォームを切り換える必要があるかどうかです。
フォームの形にも寄りますが、同じフォームで行追加ができないでしょうか。

2つ目に、もしフォームを切り換える必要がある場合についてです。書かれた方法では、一括
処理からフォームウィンドウを作成しているわけですから、一括処理に戻った段階でこのウィ
ンドウは閉じられています。つまり、使用フォームを切り換えて、そのフォームのウィンドウ
を作成すれば良いわけで、表を多重化する必要はないと思うのですが。

佐田守弘(KS-00119)

戻る