• 締切済み

インスタンスを消滅させる方法

PHPでAccessのインスタンスを生成しましたが、 これが消滅せずに残ってしまいます。 Submitの度にインスタンスが増えて困ります。 インスタンスを消滅させる方法をご教授ください。 以下に試した方法を記載します。 いずれも成功しませんでした。 (1) $ap = new COM("Access.Application"); $ap->Quit(); unset($ap); (2) $sc = new COM("ScriptControl"); $sc->Language = "VBScript"; $sc->ExecuteStatement("Dim A"); $sc->ExecuteStatement("Set A=CreateObject(\"Access.Application\")"); $sc->ExecuteStatement("A.Quit"); $sc->ExecuteStatement("Set A=Nothing"); $sc->Reset(); unset($sc); 以上、よろしくお願いします。

みんなの回答

  • foreach
  • ベストアンサー率51% (43/84)
回答No.1

> いずれも成功しませんでした。 何がどのように成功しなかったのですか? 一般的にPHPは処理が終わるタイミングでオブジェクトは自動的に破棄されます。 そのCOMクラスか継承したクラスにデストラクタを定義して中でログを書き出す処理を追記した上で実行してみて下さい。 このときログが書き出されればインスタンスは自動的に破棄されてることになります。 そうじゃなければ別の問題だと思います。

nda23
質問者

お礼

その後、フト思いついたことを試した結果、解決しました。 Accessが起動する時、画面が開くのですが、Apacheの サービスで「デスクトップとの対話」がOFFになっていると、 画面表示が完了せず、何時までもプロセスが残るようです。 「デスクトップとの対話」をONにしたところ、インスタンスは 自動的に消滅するようになりました。

すると、全ての回答が全文表示されます。

関連するQ&A