アプリケーションの設計
アプリケーション開発者が検索ビューで SELECT ステートメントを使用したい場合は、検索の実行対象となる DB2 Access ビュー (DAV) の名前で、DAV 名の前にスキーマ名を付ける必要があります。そうしないと、DB2 はテーブルを検索するスキーマとして Domino Server の DB2 ユーザー名を使用してしまいます。たとえば、dav1 というテーブルに対して SELECT ステートメントを使用した検索ビューを実行する場合に、設計者がスキーマ名を使用していないと、DB2 はこのテーブルの場所を <db2user>.dav1 に常駐するものとして解釈します。
これを避けるため、アプリケーション開発者は次の検索を使用して、カタログテーブルからスキーマ名を調べることができます。
そのうえ、[ファイル] - [データベース] - [コピー] を使用して DB2 対応 Notes データベースをコピーしても、新しいコピーは元のデータベースの Domino テーブルを参照します。したがって、これらの DB2 対応 Notes データベースに対して実行される検索ビューも、元のテーブルソースを参照することになります。
DB2 対応 Notes データベースのスキーマ名をすばやく簡単に判断するには、@関数の @DB2Schema, を使用します。この関数を検索式で使用すると、指定した DB2 対応 Notes データベースの DB2 スキーマ名が返されます。検索ビューでは、検索式 (どれがテキスト文字列になるかの評価) の構造内に @関数が組み込まれている場合があります。@関数を使用できるコンテキストはすべてサポートされています。これには、ビュー選択式や列式などが含まれます。
@DB2Schema を使用した検索式の例を次に示します。
@IsDB2 @IsDB2 関数はパスを表すテキスト引数を受け入れますが、その際に、@DB2Schema の使用を制御するルールと同じものを使用します。TRUE が返された場合は DB2 対応 Notes データベースが DB2 に格納されていることを意味し、FALSE が返された場合はネイティブの NSF 形式で格納されている (つまりソースデータベースの性質を判断できない) ことを意味します。
関連項目