複合水平フィルターの定義

データベースおよびユーザー管理におけるいくつかの状態では、 グループまたはユーザーが参照できる行を制限するために、 「個々のユーザーがもつ行のサブセット」フィールドの 複合 SQL WHERE 文節の定義を呼び出します。 フィルターを定義する際は、ミラー・データベース内の表を参照する場合や、グループまたはユーザー用のパラメーターを使用 する場合や、あるいはこれらの方法を組み合わせて使用する場合があります。 単純水平フィルターを作成するための基本ステップについては、サブスクリプション・レベルでのデータのフィルター操作を参照してください。

DB2 Everyplace 同期サーバーは、フィルターと共に使用する、SQL WHERE の標準インプリメンテーションのサブセットを提供します。 サブセットの構文については、フィルターの構文を参照してください。

次の例は、ミラー・データベース内の他の表を参照する方法と、水平フィルター操作のためのパラメーターの使用方法を 示しています。

Ziptab および Business という名前の 2 つの表を管理していて、この両方がミラー・データベースに入っているとします。 Ziptab には特定の市の ZIP コードが入っており (表 208)、Business には企業情報と その企業の ZIP コードが入っています (表 209)。 カリフォルニア州サンホセ (San Jose, California) のユーザーには、その市の企業のみを見せたいとします。 グループを作成しておき、これらのユーザーをそのグループに割り当てておきます。


表 208. Ziptab 表

City Zipcode
San Jose 95141
San Jose 95123
Los Angeles 93002


表 209. Business 表

Business Zip
IBM 95141
My Company 95123
Your Company 93002
Another Company 94888

「行」ページの「個々のユーザーがもつ行のサブセット」フィールドに、 次の文節を入力します。

(Zip) IN (SELECT Zipcode FROM Ziptab WHERE City = ':fcity')

:fcity は、City 列の値のためのパラメーターです。グループに対して、 この値を San Jose にセットします。

そして、「サブスクリプションの作成 (Create Subscriptions)」ノートブックを完了し、クローズします。 その結果、同期の後は、デバイス上の「Business」表に表示される行は、次のものだけになります。

表 210. デバイスに表示される行

Business Zip
IBM 95141
My Company 95123

関連したタスク

関連した解説