式言語
データソース情報を使用して、適切な ODBC ドライバを起動します。起動されたドライバは、指定された DBMS、テーブル、列を特定し、その列内のすべての値を返します。返される値リストのソートや、重複する値の削除、および Null 値の扱いもオプションで指定できます。
メモ @DbColumn はデータを取り出すだけで、データの追加、削除、変更はできません。
構文
@DbColumn( "ODBC" :cache ; data_source ; user_ID1 :user_ID2 ; password1 :password2 ; table ; column :null_handling ; "Distinct" :sort )
パラメータ
"ODBC"
「データソースを指定する」を参照してください。
「ID とパスワードを指定する」を参照してください。
「Null の扱い方を指定する」を参照してください。
「Distinct を指定する」を参照してください。
「sort を指定する」を参照してください。
valuesFound
後述の「戻り値にアクセスする」を参照してください。
データソースを指定する
データソース名は、最大 32 文字の英数字で指定します。
@DbLookup では、ODBC.INI ファイル (または Windows (TM) 以外のプラットフォームの場合、同様のレジストリ) に登録済みのデータソースにアクセスできます。
ID とパスワードを指定する
これらの引数は、DBMS で必要な場合にのみ指定します。
ID を @DbColumn 式に保存する代わりに、Null 文字列 ("") を使用できます。ID が必要なときは、ユーザーに ID の入力を要求するプロンプトが表示されます。これは、自分の ID を他の設計者に見られたくない場合や、外部データにアクセスするときにユーザーに自分の ID を入力させたい場合に便利です。ただし、自動的に実行される式 (エージェントなど) には、必ず ID とパスワードを指定します。このような式は、情報の入力を要求しないからです。
データベースが開いたままのときは、データソースにアクセスするためのユーザー ID とパスワードの入力は、Lotus Domino のデータベースセッションごとに一度だけ必要です。ユーザーが Lotus Domino の別のデータベースを開いて同じデータソースにアクセスする式を実行する場合は、ユーザー ID とパスワードをもう一度入力する必要があります。
パスワードパラメータは、ID パラメータを指定した場合に限り必要となります。ID と同様に、パスワードを @DbColumn 式に保存することも、代わりに Null 文字列を使用してユーザーに入力させることもできます。データベースパスワードが Null の場合は、式から省略できます。
たとえば、ID とパスワードを完全に指定する場合は、次のように入力します。
テーブル名の所有者名は省略可能ですが、テーブル名を明確にするために指定することもできます。所有者名とテーブル名はピリオドで区切り、"owner_name.table_name" という形式で指定します。たとえば、
"dbo.author"
Table で、アクセス対象の DBMS のデータベースのビューも参照できます。
Null 扱い方を指定する
通常、Null 値は無視され、結果のリストは短くなります (後述の Discard オプションを使用する場合と同様)。
Null 値の処理を制御するには、次のオプションを 1 つ指定し、コロンを付けて column パラメータに追加します。
Null values found - canceling @Db function
メッセージだけでデータは返されません。
Caution: Null 値は @Db リストから除外されます。
式にソート文字列引数が含まれているときは、返される値のリストは置換する値が挿入される前にソートされます。ソートするとき、すべての Null 値は、昇順ソートの場合はリストの最初に、降順の場合はリストの最後に置かれます。ソートが完了するまで Null 値は置換されません。この結果、一部の値が正しくソートされていないリストが作られることがあります。たとえば、置換する値として「zzz」を指定したとします。この場合、昇順にソートしても「zzz」という値はすべてリストの最初に表示されてしまいます。
@DbColumn 式を実行したときに値が置換された場合は、ステータスバーに次のメッセージが表示されます。
Caution:NULL value replaced with user-defined value in @Db list
通常、置換する値にはリストにありそうにない有効な値を指定します。たとえば、列が文字列の場合は、置換する値として「***」を指定すれば、置換された値を簡単に見つけられます。
Distinct 文字列引数は @Unique に似ています。ただし、Distinct ではデータが返される前に重複する値が必ず削除されます。@Unique ではなく Distinct を使用すると、次の 2 つの利点があります。
sort を指定する
Distinct 文字列引数を使用するとき、コロンを付けて sort パラメータを付加することができます。sort パラメータには次のキーワードのいずれかを使用し、戻り値のソート方法を指定します。
メモ 一部の ODBC ドライバは sort キーワードをサポートしていません。式で Ascending と Descending の両方を指定すると、「引数が無効です」というメッセージが表示されます。
複数の値が返されるときは、現在のフィールドに指定されている複数値の分離記号で区切られたリストの形式で返されます。
@DbColumn は、64KB を超えるデータを返すことはできません。次の公式を使用して、@DbColumn で返されるデータ量を求めます。
2 + (2 * 返されるエントリ数) + 全エントリの合計文字列サイズ
各文字列は 511 バイトに制限されています。文字列が 1 つだけ返される場合は、64KB に制限されます。
(10 * 返されるエントリ数) + 6
NoExternalApps=1
@DbCoulumn 式は無効になります。この場合、式が失敗するだけでエラーメッセージは表示されません。これは、@DbColumn を ODBC とともに使用した場合に限り起こります。
使用法
@DbColumn は、主にキーワード式で使用します。キーワードのリストをハードコーディングしてリストを定期的に更新する代わりに、@DbColumn を使用すると、外部データベーステーブルから動的に値のリストを取り出すことができます。
あまりないケースですが、取り出し対象のデータを含むテーブルが保存されているリモートサーバーが Lotus Domino サーバーと同じコンピュータ上に存在する場合、この関数は Web アプリケーションでのみ機能します。
クロスリファレンス
Lotus Connectors ODBCResultSet クラスの GetValue メソッド
例 関連項目