Oracle Forms 10gのclient_hostを使用してファイルを一時的な場所にコピーし、アプリケーションを起動して一時ファイルを表示してから一時ファイルを削除します。この場合、表示アプリケーションはWindows Internet Explorerです。問題は、一時ファイルを削除するためのdelete_file呼び出しがIEを起動してファイルを表示する前に呼び出され、ファイルを見つけることができないためIEでエラーが発生することです。以下は、私たちがやっていることを示すコードスニペットです:Oracle pl/sqlのclient_hostコールを強制的にモーダルにできますか?
-- Copy the file to the site defined temporary location
client_host ('cmd /c copy '||Vcurrentfile||' '||Vtempfile);
-- Launch viewing application and display the temporary file
client_host (Pviewer||' '||Vtempfile);
-- Delete the temporary file
Vsuccessind := webutil_file.delete_file (Vtempfile);
Client_hostは、モーダルことになっているので、ユーザーはIEウィンドウを閉じるまでDELETE_FILE文は実行すべきではありません。ただし、ビューアを起動するclient_host呼び出しが完了する前に実行されているように見えます。何か案は?
ファイルがIEに表示されなかった理由は、Oracle App Server構成ファイルmime.typesにファイル拡張子がないためです。拡張機能がmime.typesに追加されると、ファイルが正しく表示されます。私たちはまだIEを閉じた後に一時ファイルが削除されないという問題があります。 FirefoxまたはChromeを使用すると、一時ファイルが削除されます。 – Mark