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