式言語


@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"


cache
user_ID1 :user_ID2
password1 :password2
command_string
null_handling
戻り値

valuesFound


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

データソースを指定する

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

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

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

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

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

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

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

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


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

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

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


日時の値は、Lotus 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 アプリケーションでこのコマンドをページや文書のアクションから呼び出した場合は、埋め込みビューが影響を受けます。


関連項目