2010-12-19 10 views
1

私は、これらのテーブルOracle Forms Builderでデータ・ブロック出力に戻るカスタム問合せですか?

BOOKS

ID | GENREID(number) | COUNTRYID(number) | 

ジャンル

ID | TITLE 

国私のフォームBOOKSでは

ID | TITLE 

、私は表示する必要があります。

ID GENERES.TITLE COUNTRIES.TITLE 

私が必要とするのは、すべてのテーブルからJOINテーブルまたはSELECTデータを取り出して表示することだけです。これはOracleフォームデザイナでは不可能と思われます。私のデータブロックの出力には、挿入されたIDを持つBOOKSテーブルのデータは表示されますが、別のテーブル(例えば、GENRES、COUNTRIES)のIDに対応するタイトルは表示されません。私はデータブロックにカスタムクエリを配置する場所を見つけることができません。

最新のoracle dev suite homeを使用しています。これはどうすればいいですか?

答えて

2

これを行うには2つの一般的な方法があります:

  • は、彼らがそれらのフィールドを挿入して更新できるようにするために非データベース表示フィールドとLOVを移入するクエリ後のトリガーを使用してください。

  • データベースにビューを作成し、それに基づいてブロックを作成します。

最初の1つが最も簡単ですが、余計な作業をすることなくこれらの非データベースフィールドを検索することはできません。

2番目のオプションでは検索が可能ですが、ビュー内でデータを追加および更新するといくつかの問題が発生します。私は通常、オン・イン・オン・アップデート、オン・デリート、オン・ロック・トリガを使用して、これらの機能を手動で処理し、ベース・テーブルを変更します。私はその一つのロットを使用しています>ステップ3

を読む -

+0

+1。ビューの別の可能性は、DMLを処理するためにビューの代わりにトリガーを追加することです。ただし、ロックオントリガーはまだ必要です。 –

1

http://sheikyerbouti.developpez.com/from_clause/from_clause.htm

。これにより、フォームへの独自のクエリを構築したり、(もちろん1つのテーブルに)挿入/更新/削除できるブロックを取得することができます。そして、これは私が例えばユーザーIDとユーザー名フィールドのようなブロックを行う方法です。

少なくとも私のFormsバージョンでは、data_source_typeをデフォルトに戻しているため、実行時にクエリを変更することはできません。

関連する問題