[FAQ] ODBCテーブルで取得するレコードを絞り込むには

コンテキサーでは、オプションライセンスでODBCデータソースからテーブルのレコードを取得できます。

実現したいこと

パネル追加で、ODBCデータソースのテーブルを選択して、レコードを全件取得できるようになりました。このテーブルから特定の条件のレコードだけを取得するには、どのように設定すればよいのでしょうか?また、SQLクエリを直接指定する方法はありますか?

実現方法

対象の入出力コンテキストに、フィルタを設定するか限定を定義します。

パネルメニューを開き「兄弟コンテキスト」から「○○○_rdb」となっている入出力コンテキストを選択して開きます。

テーブルの内容と同じ入出力コンテキストに対してフィルタまたは限定を定義します。

絞り込み条件が固定値の場合は、フィルタを設定し、フィルタ条件を固定します。

条件を指定して該当行のみを読み込む方法

キーワードや日付範囲など絞り込み条件が固定値ではない場合には、限定を定義します。

特定の条件に合致するレコードだけを読込む方法

別パネルで選択しているキーに関連するレコードを取得する場合も、限定を定義します。

選択した親行に対する子行だけを読込む方法

詳細解説

コンテキサーでは、テーブルを読み込んだパネルに対してフィルタを設定すると、表示上の行が絞り込まれます。ただし業務アプリを開いたときに既定値でデータソースのテーブルから全件取得されるため、件数が膨大な場合に読み込みに時間を要します。

入出力コンテキストに対してテーブルの読み込み条件を指定すると、対象レコードを絞り込んで読み込むことができます。ODBCデータソースの入出力コンテキストでは、フィルタまたは限定を定義することで、その定義内容に適したSQLクエリが内部で自動的に発行されます。

なおコンテキサーでは、SQLクエリを直接指定することはできませんが、限定と転記によって同等の表現を実装できます。