PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
7982 | 99/09/03 13:44:27 | RE(3):PB6: LOOPの中断を行う(Yield 関数を使って)と、アプリケーションエラーになってしまう By Taka |
7979 | 99/09/03 13:09:54 | RE(2):PB6: LOOPの中断を行う(Yield 関数を使って)と、アプリケーションエラーになってしまう By おはる |
7978 | 99/09/03 12:25:21 | RE(1):PB6: LOOPの中断を行う(Yield 関数を使って)と、アプリケーションエラーになってしまう By Taka |
7976 | 99/09/03 11:43:36 | PB6: LOOPの中断を行う(Yield 関数を使って)と、アプリケーションエラーになってしまう By おはる |
カテゴリ:スクリプトの記述
日付:1999年09月03日 12:25 発信者:Taka
題名:RE(1):PB6: LOOPの中断を行う(Yield 関数を使って)と、アプリケーションエラーになってしまう
おはるさん、こんにちは。
>長いLOOP処理を中断できるようにということで、Yield 関数を現在使用しています。
>このLOOPの中の処理は、通信用のDLLを毎回起動しています。
>
>確かに中断されるのですが、別の処理を実行しようとする(ウィンドウと閉じるなど)と
>アプリケーションエラーが発生してしまいます。
>DLLを起動しなかったら、まったく問題なく、LOOP処理を中断することも、次の処理を実行
>することも可能なのです。
LOOPの中でYield()した結果、なにかの条件によって中断していると思いますが、書き方に注意が
必要です。いきなりウィンドウをクローズしないで、
・まず、ループをEXIT
・必要に応じて後処理などを実行
・その関数を正しく終わらせる
・その関数の呼び出し元となっているスクリプトでも、正規手順で終了させる
・これで始めてウィンドウを閉じる
など、きちんと順を追って処理すれば大丈夫です。
あと、「通信用のDLLを起動」とありますが、非同期制御などをしている場合、中断→終了によって
受け取り用の変数アドレスが失われていることも考えられるので要注意です。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser InternetExplorer3.X
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.