前へ
前へ
 
次へ
次へ

フォームでのBLOBについて

フォームを作成する場合(アプリケーションの作成ウィザードを使用して、フォーム型またはレポートおよびフォーム型のページを作成するか、フォーム型のリージョンを作成)、または既存のフォームにアイテムを追加する場合、BLOB型のデータベース列がソースであるアイテムは、ファイル参照型のアイテムになります。フォームがINSERTにコールされる場合、ユーザーが選択したファイルは、BLOB列にロードされます。フォームが更新にコールされる場合、ダウンロード・リンクが「参照」ボタンの右に表示されます。ユーザーは、このリンクを使用してファイルをダウンロードできます。

BLOBの移入とダウンロードの提供

デフォルトのBLOBサポートでは、一般的なアプリケーションでBLOBを効果的に管理するために必要とされるすべての情報が提供されているわけではありません。 列がBLOBであるという情報に加えて、ファイルの詳細情報も提供されると、エンド・ユーザーの使いやすさが向上します。この追加情報の管理を簡単に行うために、(DB_COLUMNに加えて)追加コンポーネントを使用できるようにアイテムのソース属性が拡張されています。

位置 属性 必須 説明
1 BLOBを含む列 はい BLOBタイプの列の名前(大/小文字が区別されます)。
2 MIMEタイプ列 いいえ MIMEタイプを格納するために使用する列名(大/小文字が区別されます)。
3 ファイル名列 いいえ BLOBのファイル名を格納するために使用する列名(大/小文字が区別されます)。ユーザーがファイルをダウンロードするときにNULLの場合は、この列名がデフォルトで使用されます。
4 最終更新列 いいえ BLOBの最終更新日付を格納するために使用する列名(大/小文字が区別されます)。これを指定すると、ファイルをダウンロードする際のHTTPヘッダーに最終変更日が示され、BLOBをブラウザにキャッシュできるようになります。指定しない場合は、ファイルをブラウザにキャッシュできない場合があります。
5 キャラクタ・セット列 いいえ BLOBのキャラクタ・セットを格納するために使用する列名(大/小文字が区別されます)。キャラクタ・セットのエンコーディングを維持する必要がある場合など、アジア言語で最も使用されます。
6 コンテンツ配置 いいえ inlineまたはattachmentを指定します。その他の値はすべて無視されます。attachmentがデフォルト値です。inlineMIMEタイプが指定されている場合のみ指定できます。
7 ダウンロード・テキスト いいえ ダウンロード・リンクに使用する文字列。何も指定されていない場合は、Downloadが使用されます。これは置換をサポートしています(翻訳されたアプリケーションに有効です)。

次に例を示します。

RESUME:RESUME_MIMETYPE:RESUME_FILENAME:RESUME_LAST_UPDATE::attachment:Resume

ファイル参照タイプのアイテムを使用しており、そのソースが1つ以上のコロンを含むデータベース列(RESUME:など)である場合、「ソース」の下にリンク「BLOBダウンロードの書式マスク」が表示されます。このポップアップは、BLOB書式に必要なすべてのパラメータを入力するために役立ちます。

最低でも、1つ以上の末尾のコロンを使用してデータベースのBLOB列を指定する必要があります(RESUME:など)。これにより、Oracle Application Expressリリース3.0.1との互換性が維持されます。


ヒント:

実際の例を確認するには、サンプル・アプリケーションのページ6(「Add/Modify Products」)に移動し、アイテムP6_PRODUCT_IMAGEを確認します。「デモンストレーション・アプリケーションの実行」を参照してください。

この追加情報を提供するには、MIMEタイプ属性とファイル名属性を格納して追跡するための列を実表に追加することをお薦めします。この追加は表を拡張するだけで簡単に行うことができます。次に例を示します。

ALTER TABLE emp ADD 
   (ATTACH_MIMETYPE     VARCHAR2(255),
    ATTACH_FILENAME     VARCHAR2(255),
    ATTACH_LAST_UPDATE  DATE);

フォームを手動で作成している場合も、この機能を利用できます。 DML_PROCESS_ROWタイプのDMLプロセスを使用して、ファイル・タイプ(ファイル参照)のアイテム内に記述されている書式をページ上で使用します。この処理により、表名と主キーの列が決定されます。

BLOBの表示

作業中のBLOBがイメージである場合は、そのイメージをフォームでも表示できます。「手続き的なBLOBの使用」を参照してください。

イメージ参照の削除

ファイル参照の使用時はNULLへの設定が存在しないため、イメージ参照を削除するメカニズムを提供する必要がある場合は、イメージを削除する特別なボタン(必要な列を無効化する機能を持つボタン)を含める必要があります。次の例を参照してください。

UPDATE demo_product_info
   SET product_image = NULL,
       MIMETYPE = NULL,
       FILENAME = NULL,
       IMAGE_LAST_UPDATE = NULL,
       CHARSET = NULL
 WHERE product_id = :P6_PRODUCT_ID;

ヒント:

実際の例を確認するには、サンプル・アプリケーションのページ6(「Add/Modify Products」)→「Delete Image」プロセスに移動します。「デモンストレーション・アプリケーションの実行」を参照してください。