PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
2391 | 98/07/16 15:52:21 | RE:RE:PB5.0.03: RUN関数でなくてもいいですか? By めめ |
2384 | 98/07/16 10:26:14 | RE:PB5.0.03: RUN関数による外部プログラムとの同期 By あすかちゃんの父 |
2376 | 98/07/15 20:06:30 | RE:RE:PB5.0.03: RUN関数で処理が終了するまでスクリプト側に処理を戻さない方法 By まつおか |
2341 | 98/07/13 09:54:09 | RE:PB5.0.03: RUN関数で処理が終了するまでスクリプト側に処理を戻さない方法 By あすかちゃんの父 |
2339 | 98/07/12 13:47:37 | PB5.0.03: RUN関数で処理が終了するまでスクリプト側に処理を戻さない方法 By まつおか |
カテゴリ:旧電子会議室
日付:1998年07月16日 10:26 発信者:あすかちゃんの父
題名:RE:PB5.0.03: RUN関数による外部プログラムとの同期
まつおかさん、こんにちは。
>ちなみに、SQL Anywhereとは関係なく、RUN関数で処理が終了するまでスクリプト側に処理を戻さない
>ことは可能なのでしょうか。
>たとえば、DOSのコマンドを起動してその結果を取得したい場合など。
>
>よかったら、回答お願いします。
基本的には、Run関数は外部プログラムの起動をキックしたら、処理が
帰ってきます。そのため外部プログラムとの同期を取るには、別の方法
をとります。
ここで問題になるのが、「RUN関数で処理が終了するまで」というのが、
何をもって終了とするか?です。外部プログラムが起動すれば終了なの
か、何かのファイルを出力すれば終了なのか、それとも外部プログラム
が起動して終われば終了なのか、それぞれによって対処方法が変ってき
ます。
外部プログラムの起動/停止状態をチェックするには、DDEに対応してい
ればDDEの接続を試してみるとか、APIコールでチェックします。
外部プログラムが出力するファイルが、出来ているかどうかのチェック
は、FileOpen関数が成功するかどうかで判断します。このテクニックは
実際に使っています。Run関数で外部プログラムを起動後、ファイルをPB
に読込む処理をしていまして、FileOpen関数が失敗すれば、APIのSleep
関数で時間をおいてリトライするようにしています。またこの方法では、
リトライオーバーやタイムアウトの考慮も必要ですね。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.