QueryDef オブジェクト

QueryDef オブジェクトでクエリーのパラメータを定義します。クエリーはデータベースからの特定のレコードの取得に使用されます。

QueryDef オブジェクトには、クエリー式と表示フィールドのリストが含まれます。クエリー式で、クエリーの検索パラメータを定義し、複雑な条件ステートメントのセットを含むことができます。クエリーを実行するには、ResultSet オブジェクトを作成して、その Execute メソッドを呼び出す必要があります。(Session オブジェクトの BuildResultSet メソッドを使用して、ResultSet オブジェクトを作成できます。) ResultSet オブジェクトは、QueryDef オブジェクト内の表示フィールドのリストを使用して検索結果を要約します。

QueryDef オブジェクトを作成するには、次の手順で行います。

  1. Session オブジェクトの BuildQuery メソッドを呼び出します。BuildQuery メソッドによって、表示フィールドとフィルタが定義されていない QueryDef オブジェクトが戻されます。
  2. クエリーのためのフィルタとフィールドを QueryDef オブジェクトに追加します。

特定タイプのすべてのレコードを戻すクエリーを作成するには、 QueryDef オブジェクトを作成します。ただし、これにフィルタは追加しないでください。 代わりに、QueryDef オブジェクトの BuildField メソッドを使用して戻されるフィールドを追加してください。

QueryDef オブジェクトにフィルタとノードを追加して、さらに複雑なクエリーを作成できます。QueryDef オブジェクトのノードは、1 つ以上の QueryFilterNode オブジェクトから構成され、それぞれに 1 つ以上のフィルタが含まれています。ノード グループには、その各フィルタが 1 つのブール演算子でまとめられています。このツリーのルート ノードを作成するには、QueryDef オブジェクトの BuildFilterOperator メソッドを使用します。その後、QueryFilterNode のメソッドを使用して、残りのノードとフィルタを定義します。フィルタ自体で他の比較演算子を使用して、指定したデータに対するフィールドの関係をテストできます。

例えば、次のステートメントのようにします。

Select * from <some defect> where (....) AND1 ((...) OR2 ( (...) AND3( (...) OR4 (...))))

ルート演算子は AND (AND1) です。 次レベルのサブノード演算子は OR (OR2) です。完全な階層は、次のとおりです。

   AND1 (AND1 is the root operator)
   \
      OR2 (OR2 is suboperator of AND1)
       \
         AND3 (AND3 is suboperator of OR2)
         \
            OR4 (OR4 is suboperator of AND3) 
注: また、Session オブジェクトの BuildSQLQuery メソッドを使用して、未加工の SQL クエリー文字列からクエリーを構成することもできます。しかし、この手法では QueryDef オブジェクトは作成できません。

QueryDef オブジェクトの使用方法の例については、動的フィルタを持つクエリーの実行を参照してください。


フィードバック