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

ODBC.INI ファイル (または同等のファイル) のデータソース情報を使用して、適切な ODBC ドライバを起動します。起動されたドライバは、指定された DBMS を特定し、指定されたコマンドを渡し、そのコマンドによって取り出されたデータを返します。

注: @DbCommand は、ODBC データソースと SELECT ステートメントと共に使用する場合にのみ機能します。結果セットを取得しないステートメントと共に @DbCommand を使用した場合は、ステートメントの転送のみが行われます。より広範なやりとりをするには、LotusScript® の ODBC 機能を使用します。

構文

@DbCommand( "ODBC" : cache ; data_source ; user_ID1 : user_ID2 ; password1 : password2 ; command_string : null_handling )

パラメータ

"ODBC"

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

cache

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

文字列。アクセス対象の外部データソースの名前を指定します。データソースは、1 つ以上のデータベーステーブルの場所を表します。「データソースを指定する」を参照してください。

user_ID1 : user_ID2

文字列リスト。外部データベースに接続するために必要なユーザー ID を指定します。アクセスする DBMS によっては 2 つの ID が必要な場合があります。「ID とパスワードを指定する」を参照してください。

password1 : password2

文字列リスト。ユーザー ID に必要なパスワードを指定します。「ID とパスワードを指定する」を参照してください。

command_string

文字列。実行する SQL ステートメント、コマンドステートメント、プロシージャー名を指定します。「コマンド文字列を指定する」を参照してください。

null_handling

文字列。データを取り出すときの Null 値の扱い方を指定します。「Null の扱い方を指定する」を参照してください。

戻り値

valuesFound

文字列、数値、日時、これらのデータ型のリスト。command_string によって返された値です。「戻り値にアクセスする」を参照してください。

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

データソースを指定する

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

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

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

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

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

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

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

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

注: 接続が複雑なときは、データソースに接続するために追加の ID とパスワードパラメータが必要な場合があります。

コマンド文字列を指定する

command_string には、次のいずれかを指定します。

日時の値は、Domino の形式ではなくデータベースの形式で入力する必要があります。例えば、DB2/2 の場合は 1996-01-31-12:00:00 ではなく 1996-01-31-12.00.00 を使用します。

Null の扱い方を指定する

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

戻り値にアクセスする

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

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

NoExternalApps=1

@DbCommand 式は無効になります。この場合、式が失敗するだけでエラーメッセージは表示されません。

使用法

@DbCommand は、不等号の関係 (より小さいなど) を調べる場合や、複数の条件を同時に調べる場合に便利です。@DbCommand を使用するには、コマンドを処理用のバックエンドデータベースに渡します。

例えば、次のようなレコードのデータを返すものとします。

BALANCE >= 1000.00 and DAYS_OVERDUE > 30

この場合、選択ステートメントを SQL で記述し、次に @DbCommand を使用してそのステートメントを DBMS に渡し、処理を行います。要求したデータが @DbCommand から返されます。

Web アプリケーションでこの関数を使用する場合は、次の構文のみが可能です。

@DbCommand("Domino";"ViewNextPage") 

または

@DbCommand("Domino";"ViewPreviousPage")

これによって、ビューの次または前のページへのリンクが作成されます。Web アプリケーションでは、これ以外の場所では @DbCommand は使用できません。

注: Web アプリケーションでこのコマンドをページや文書のアクションから呼び出した場合は、埋め込みビューが影響を受けます。

次の式では、Microsoft SQL Server に付属する「pubs」というサンプルデータベースを使用します。ODBC ドライバを使用して PUBLISHERS というデータソースにアクセスし、ユーザー「dbo」が所有する「authors」というテーブルを特定します。次に、「au_lname」列から、カリフォルニアに住み、契約を交わしている作成者名のリストを取得します。文字列 CA は、すでに引用符で囲まれたコマンド文字列内に組み込まれているため、一重引用符で囲まれています。
@DbCommand("ODBC";"PUBLISHERS";"dbo":"";"vanilla":"";   
"SELECT au_lname FROM dbo.authors WHERE contract=1 AND state='CA' ")