@DbColumn (ODBC データソース) (式言語)

データソース情報を使用して、適切な ODBC ドライバを起動します。起動されたドライバは、指定された DBMS、テーブル、列を特定し、その列内のすべての値を返します。返される値リストのソートや、重複する値の削除、および Null 値の扱いもオプションで指定できます。

注: @DbColumn はデータを取り出すだけで、データの追加、削除、変更はできません。

構文

@DbColumn( "ODBC" : cache ; data_source ; user_ID1 : user_ID2 ; password1 : password2 ; table ; column : null_handling ; "Distinct" : sort )

パラメータ

"ODBC"

文字列引数。ODBC データソースにアクセスすることを示します。

cache

文字列引数。オプション。初回の検索では、"" または "NoCache" を指定します。 "" を指定した場合、次回の検索でも同じデータソースを検索する場合は、"ReCache" を指定できます。

data_source

文字列。アクセス対象の外部データソースの名前を指定します。データソースは、1 つ以上のデータベーステーブルの場所を表します。

「データソースを指定する」を参照してください。

user_ID1 : user_ID2

文字列リスト。外部データベースに接続するために必要なユーザー ID を指定します。アクセスする DBMS によっては 2 つの ID が必要な場合があります。

「ID とパスワードを指定する」を参照してください。

password1 : password2

文字列リスト。ユーザー ID に必要なパスワードを指定します。

「ID とパスワードを指定する」を参照してください。

table

文字列。アクセス対象のデータベーステーブルの名前を指定します。

column

文字列。取り出すデータが含まれている列の名前を指定します。

null_handling

文字列。データを取り出すときの Null 値の扱い方を指定します。

「Null の扱い方を指定する」を参照してください。

"Distinct"

文字列引数。オプション。重複する値をリストから削除してからデータが返されます。

「Distinct を指定する」を参照してください。

sort

文字列引数。値のリストを昇順にソートした結果が返されるようにするには、"Ascending" を指定します。降順にソートした結果が返されるようにするには、"Descending" を指定します。

「sort を指定する」を参照してください。

戻り値

valuesFound

文字列、数値、日時、これらのデータ型のリスト。指定した column の値が返されます。

後述の「戻り値にアクセスする」を参照してください。

注: キーワードフィールドでの選択方法としてラジオボタンやチェックボックスを使用する場合、キーワードリストは文書が作成されたときまたは編集用に読み込まれたときだけ更新されます。標準の選択方法では、文書が再計算されるたびにキーワードリストも更新されます。

データソースを指定する

データソース名は、最大 32 文字の英数字で指定します。

@DbLookup では、ODBC.INI ファイル (または Windows 以外のプラットフォームの場合、同様のレジストリ) に登録済みのデータソースにアクセスできます。

ID とパスワードを指定する

これらの引数は、DBMS で必要な場合にのみ指定します。

ID を @DbColumn 式に保存する代わりに、Null 文字列 ("") を使用できます。ID が必要なときは、ユーザーに ID の入力を要求するプロンプトが表示されます。これは、自分の ID を他の設計者に見られたくない場合や、外部データにアクセスするときにユーザーに自分の ID を入力させたい場合に便利です。ただし、自動的に実行される式 (エージェントなど) には、必ず ID とパスワードを指定します。このような式は、情報の入力を要求しないからです。

データベースが開いたままのときは、データソースにアクセスするためのユーザー ID とパスワードの入力は、Domino のデータベースセッションごとに一度だけ必要です。ユーザーが Domino の別のデータベースを開いて同じデータソースにアクセスする式を実行する場合は、ユーザー ID とパスワードをもう一度入力する必要があります。

パスワードパラメータは、ID パラメータを指定した場合に限り必要となります。ID と同様に、パスワードを @DbColumn 式に保存することも、代わりに Null 文字列を使用してユーザーに入力させることもできます。データベースパスワードが Null の場合は、式から省略できます。

例えば、ID とパスワードを完全に指定する場合は、次のように入力します。

テーブル名を指定する

テーブル名の所有者名は省略可能ですが、テーブル名を明確にするために指定することもできます。所有者名とテーブル名はピリオドで区切り、"owner_name.table_name" という形式で指定します。以下に例を示します。

"dbo.author"

Table で、アクセス対象の DBMS のデータベースのビューも参照できます。

Null の扱い方を指定する

通常、Null 値は無視され、結果のリストは短くなります (次に説明する Discard オプションを使用する場合と同様)。

Null 値の処理を制御するには、次のオプションを 1 つ指定し、コロンを付けて column パラメータに追加します。

Distinct を指定する

Distinct 文字列引数は @Unique に似ています。ただし、Distinct ではデータが返される に重複する値が必ず削除されます。@Unique ではなく Distinct を使用すると、次の 2 つの利点があります。

注: 一部の ODBC ドライバは Distinct をサポートしていません。データに Null 値がある場合に Distinct を指定すると、通常は Null が 1 つ返されます。

sort を指定する

Distinct 文字列引数を使用するとき、コロンを付けて sort パラメータを付加することができます。sort パラメータには次のキーワードのいずれかを使用し、戻り値のソート方法を指定します。

ソート文字列引数を指定しないと、値はソートされずに返されます。

注: 一部の ODBC ドライバは sort キーワードをサポートしていません。式で Ascending と Descending の両方を指定すると、「引数が無効です」というメッセージが表示されます。

複数の値が返されるときは、現在のフィールドに指定されている複数値の分離記号で区切られたリストの形式で返されます。

@DbColumn は、64KB を超えるデータを返すことはできません。次の公式を使用して、@DbColumn で返されるデータ量を求めます。

ユーザーの NOTES.INI ファイルに次のステートメントが含まれている場合は、

NoExternalApps=1

@DbCoulumn 式は無効になります。この場合、式が失敗するだけでエラーメッセージは表示されません。これは、@DbColumn を ODBC とともに使用した場合に限り起こります。

使用法

@DbColumn は、主にキーワード式で使用します。キーワードのリストをハードコーディングしてリストを定期的に更新する代わりに、@DbColumn を使用すると、外部データベーステーブルから動的に値のリストを取り出すことができます。

あまりないケースですが、取り出し対象のデータを含むテーブルが保存されているリモートサーバーが Domino サーバーと同じコンピュータ上に存在する場合、この関数は Web アプリケーションでのみ機能します。

  1. 次の式では、会社の制服として入手できる色の完全なリストが [inventory] データベースから取り出されます。データは、次のように保存されています。

    アイテム

    サイズ

    Shirt

    Small

    Skirt

    Small

    Green

    Sweater

    Trousers

    Yellow

    @DbColumn を使用して、Color 列 (列 3) の内容全体を取り出します。

    @DbColumn("ODBC";"INVENTORY";"";"";"UNIFORMS";"Color")

    結果リストの値は、データベースで検出されたとおりに表示されます。ソートされずに、重複する値もそのまま表示されます。

    Red:Green:Red:Yellow
  2. 次の例では、Microsoft SQL Server に付属する「pubs」というサンプルデータベースを使用します。次の式では、ODBC SQL Server ドライバを使用してデータベースにアクセスし、ユーザー「dbo」が所有する「authors」というテーブルを特定します。次に、「au_lname」列から名前のリストを取り出します。作成者名は昇順にソートされ、Null 値は破棄されます。
    @DbColumn("ODBC";"PUBLISHERS";"dbo";"vanilla";
    "dbo.authors"; "au_lname":"Discard";"Ascending")

クロスリファレンス

Lotus® Connectors ODBCResultSet クラスの GetValue メソッド (Notes® Domino Application Development Wiki (http://www-10.lotus.com/ldd/ddwiki.nsf) のトピックを参照)