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

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