前提条件:
クエリ属性は、クエリによって返される値を持つ属性です。クエリ スケマティック属性パラメーターを構成するには、そのクエリを指定します。
クエリ属性は、スケマティック フィーチャクラスまたはダイアグラム テンプレートに対して構成できます。クエリ属性がスケマティック フィーチャクラスに適用され、指定しようとしているフィールドが、そのスケマティック フィーチャクラスに対して構成されているカスタム クエリによって返される場合、つまり、このフィールドがそのスケマティック フィーチャクラス自体から取得されている場合は、クエリ属性を作成する必要はありません。その場合のソリューションは、フィールド属性の構成です。これは、スケマティック ダイアグラム テンプレートに適用するクエリ属性と同じです。クエリ属性を定義する意味があるのは、クエリ対象のフィールドが、そのスケマティック ダイアグラム テンプレートに対して構成されたクエリによって返されるのでもなく、そのスケマティック ダイアグラム クラス自体のフィールドでもない場合のみです。以下の手順は、このタイプの属性に使用するクエリの構成方法を示しています。
このスケマティック属性自体を作成するには、「スケマティック フィーチャクラスの属性の作成」または「スケマティック ダイアグラム テンプレートの属性の作成」トピックで説明する手順を開始し、その手順 6 で属性の [タイプ]を指定するときに、[クエリ] を選択します。以下は、これらのトピックの手順 7 で行う、特定のクエリ属性の構成に関する手順です。
新しいスケマティック属性の [タイプ] として [クエリ] を選択すると、次のように [プロパティ] タブが表示されます。
次に、属性の値を定義する値を持つ、クエリ対象のフィールドを構成する必要があります。
- バージョン対応データで作業していて、各フィーチャと同じバージョンに基づく別のテーブルにクエリを実行する必要がある場合は、[関連するフィーチャのデータ ソースを使用] ボックスをオンにします。
これにより、関連フィーチャの元となったバージョンを使用して、クエリが実行されます。前のバージョンにはこのオプションがありませんでした。クエリは常にデフォルト バージョンに対して実行されていました。
- [OK] をクリックします。
- [クエリ/識別子エディター] ボタンをクリックします。
[クエリ/識別子エディター] が開きます。
- [データ ソース] ドロップダウン リストから、目的のデータ ソースをクリックします。
- [テーブル] リストから、クエリを実行する対象となるテーブルをクリックします。
選択したテーブルのコンテンツが、右側のエリアに自動的に表示されます。
- [クエリ] セクションに、クエリ SQL コードを入力します。
属性クエリは、属性クエリが定義されているスケマティック フィーチャクラスまたはダイアグラム テンプレートに関連するスケマティック フィーチャまたはダイアグラムごとに 1 つの値を返す必要があるため、クエリには、多くの場合、パラメーターが必要です。パラメーターについては、キーボードで ? キーを押すと、[パラメーター] エリアが自動的に表示されます。SQL クエリで新しいパラメーターを参照するたびに、その新しいアイテムに対応する新しいエントリがこのエリアの [名前] 列に作成されます。
- [パラメーター] セクションに表示される [名前] ドロップダウン リストを使用して、スケマティック フィーチャクラスまたはそのダイアグラム テンプレートにすでに存在していて、クエリ パラメーターとして使用する属性を選択します。
- [テキスト] ボックスを使用して、パラメーター値のタイプを指定します (パラメーターによってテキスト値が返される場合はオンに、他のタイプの値の場合はオフにします)。
- [テスト値] フィールドを使用してテスト値を指定してから、[結果の表示] をクリックしてクエリ結果をテストします。
- [結果の表示] をクリックして、クエリによって返されるレコードをチェックします。
- [識別子] ドロップダウン リストから、属性値を返すフィールドをクリックします。
- [OK] をクリックして、クエリ属性定義を検証し、停止します。
[クエリ/識別子エディター] を開いた [クエリ] エリア フィールドに SQL コードが自動的にレポートされます。
クエリ スケマティック属性の作成を完了するには、「スケマティック フィーチャクラスの属性の作成」または「スケマティック ダイアグラム テンプレートの属性の作成」トピックの手順 8 ~ 11 の説明に従って、[ストレージ モード] および [評価モード] セクションで使用可能なパラメーターを指定する必要があります。