これらの変数を関数と一緒に使用すると、 言語環境が FUNCTION ブロックを処理する方法をカスタマイズするのに役立ちます。 変数にはそれぞれデフォルト値があります。 変数に新規の値を割り当てて、 デフォルト値をオーバーライドすることができます。
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X |
| X | X | X | X |
目的
データベース関数を呼び出したときにアクセスする、 データベースまたは ODBC データ・ソースを指定します。 複数のデータベースまた ODBC データ・ソースをアクセスするために、 この変数を 1 つのマクロ内で複数回変更することができます。
OS/400 オペレーティング・システム: この変数はオプションです。 デフォルトでは、Net.Data は DATABASE="*LOCAL" を指定します。 DTW_SQL 言語環境は、 ローカルのリレーショナル・データベースのディレクトリー項目を使用します。
Windows NT、OS/2、および UNIX オペレーティング・システム: データベース関数を呼び出す前にこの変数を定義します。 ただし、DTW_ORA (Oracle) 言語環境を使用しているときは例外です。 さらに、 同じ HTML ブロックから同じ言語環境を介して複数のデータベースにアクセスする場合は、 Live コネクションを使用しなければなりません。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
DATABASE="dbname"
値 | 説明 |
---|---|
dbname | Net.Data が接続するデータベースの名前。 |
例
例 1: SQL 操作で CELDIAL データベースに接続することを指定する
%DEFINE DATABASE="CELDIAL" %FUNCTION (DTW_SQL) getRpt() { SELECT * FROM customer %} %HTML(report){ %INCLUDE "rpthead.htm" @getRpt() %INCLUDE "rptfoot.htm" %}
関数 getRpt が呼び出されたとき、データベース CELDIAL がアクセスされます。
例 2: 前の DATABASE 定義を DTW_ASSIGN でオーバーライドする
%DEFINE DATABASE="DB2C1" ... %HTML(monthRpt){ @DTW_ASSIGN(DATABASE, "DB2D1") %INCLUDE "rpthead.htm" @getRpt() %INCLUDE "rptfoot.htm" %}
DATABASE の前の値が何であったかにかかわらず、HTML ブロックはデータベース DB2D1 を照会します。
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
SQL コマンドで大文字小文字のどちらを使用するか指定し、 すべての文字を大文字または小文字のいずれかに変換します。 この変数が定義されていない場合、デフォルトでは SQL コマンドの文字を変換しません。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
DB_CASE="UPPER"|"LOWER"
値 | 説明 |
---|---|
UPPER | SQL コマンドのすべての文字を大文字に変換する。 |
LOWER | SQL コマンドのすべての文字を小文字に変換する。 |
例
例 1: すべての SQL コマンドに大文字を指定する
%DEFINE DB_CASE="UPPER"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
| X |
|
|
|
|
目的
ローカル DB2 サブシステムへの接続のためのプランを割り当てます。 この変数は、 Net.Data がアクセスするローカル DB2 サブシステムでの Net.Data SQL 言語環境のプラン名を指定します。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
要件: この変数の値をマクロで有効にするには、 変数を SQL 言語環境の ENVIRONMENT ステートメントにリストする必要があります。
値
DB2PLAN="plan_name"
値 | 説明 |
---|---|
plan_name | DB2 プランの名前。 名前は 8 文字以内です。 |
例
例 1: DEFINE ステートメントにプランを指定する
%DEFINE DB2PLAN="DTWGAV22"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
| X |
|
|
|
|
目的
ローカル DB2 サブシステムへの接続を確立します。 この変数は、Net.Data がアクセスするローカル DB2 サブシステムのサブシステム ID を指定します。 各マクロで許されるローカル・データベース接続は 1 つだけです。
要件: この変数の値をマクロで有効にするには、 変数を SQL 言語環境の ENVIRONMENT ステートメントにリストする必要があります。
値
DB2PLAN="subsytem_id"
値 | 説明 |
---|---|
subsystem_id | DB2 サブシステムの名前。 名前は 8 文字以内です。 |
例
例 1: DEFINE ステートメントにサブシステム ID を指定する
%DEFINE DB2SSID="DBNC"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
アプレット言語環境で使用されている APPLET タグを認識しないブラウザーに、 HTML タグとテキストを表示します。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
DTW_APPLET_ALTTEXT="HTML_text_and_tags"
値 | 説明 |
---|---|
HTML_text_and_tags | APPLET タグを認識しないブラウザー用の HTML タグとテキスト。 |
例
例 1: Web ブラウザーの制約事項を示す代替テキスト
%DEFINE DTW_APPLET_ALTTEXT="<P>Sorry, your browser is not java-enabled."
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
|
| X |
|
|
|
目的
DTW_SQL 言語環境の SQL 操作の結果として戻される NUMERIC、DECIMAL、INTEGER、および SMALLINT のデータ型を変換します。 変数 DTW_EDIT_CODES は、DTW_SQL LE が構築する表の結果の列に対応する文字ストリングです。 たとえば、その列がサポートされている型の 1 つである場合、 DTW_EDIT_CODES の中の 5 番目の文字は、結果セットの 5 つ目の列に適用します。 この単一の文字は、 Data Description Specification Reference で定義された、 サポートされるシステム提供編集コードのいずれかです。
たとえば DECIMAL(6,0) フィールドは通常、文字ストリング '112698' として表示されます。 その列に関して変数 DTW_EDIT_CODES で編集コード 'Y' を指定すると、 日付 '11/26/98' を表す文字ストリングとして、 結果表内の対応列が表示されます。
ヒント: 結果が数値でない文字 (コンマ、または通貨記号など) を含む文字ストリングになる列にユーザー提供の編集コードを適用すると、 Net.Data マクロ内の後続の処理のために文字ストリングがサーバーに送り戻された場合に、 構文エラーになります。 たとえば、後続の DTW_SQL 関数呼び出しで数値でない列値が数値の比較に使用されると、 構文エラーになります。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
DTW_EDIT_CODES="edit_code"
値 | 説明 |
---|---|
edit_code | SQL 言語環境が構築する、表の結果の列に対応する文字ストリングを指定する。 |
例
例 1:
@DTW_ASSIGN(DTW_EDIT_CODES "JJLJJ*******Y")
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
|
| X |
|
|
|
目的
文字パラメーター (データ型 CHAR または CHARACTER) をプログラムまたはストアード・プロシージャーに渡す際、 ブランクで埋め込むかどうかを言語環境に対し指示します。
IN または INOUT パラメーターの場合、 指定された精度よりもパラメーター値の長さが短い場合、 パラメーター値の右にブランクが挿入され、パラメーター値の長さが精度と同じになるようにします。
OUT パラメーターの場合、パラメーター値は 精度 ブランクに設定されます。
プログラムまたはストアード・プロシージャーへの呼び出し後、 OUT および INOUT パラメーター値からすべての後書きブランクが削除されます。
すべてのユーザー・マクロに対して値を指定するためには、 Net.Data 初期設定ファイルの中でこの変数を設定します。マクロ中でこの変数を定義すると、値をオーバーライドすることができます。 DTW_PAD_PGM_PARMS がマクロで定義されていない場合は、 Net.Data 初期設定ファイルの中の値を使用します。
DTW_PAD_PGM_PARMS は、直接呼び出しおよび SQL 言語環境でサポートされます。
値
DTW_PAD_PGM_PARMS="YES"|"NO"
値 | 説明 |
---|---|
YES | パラメーターをプログラムまたはストアード・プロシージャーに渡す前に、 すべての IN および INOUT 文字パラメーター値が左寄せされ、 パラメーターに定義された精度と同じになるようブランクが埋め込まれます。 プログラムまたはストアード・プロシージャーへの呼び出し後に、後書きブランクが削除されます。 |
NO | パラメーターをプログラムまたはストアード・プロシージャーに渡す際、 文字パラメーター値に埋め込みは追加されません。値はヌルで終了します。 プログラムまたはストアード・プロシージャーへの呼び出し後に、後書きブランクは削除されません。 |
例
例 1: パラメーターをブランクで埋め込みます。
DTW_PAD_PGM_PARMS="YES"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
SQL 言語環境が照会からの表データを保管するために使用する、表変数を指定します。 この表は後で、たとえば表データを分析する REXX プログラムなどで使用できます。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
DTW_SAVE_TABLE_IN="table_name_var"
値 | 説明 |
---|---|
table_name_var | SQL 言語環境が照会からの表データを保管するための表名。 |
例
例 1: REXX 呼び出しで使用される、事前定義された表変数
%DEFINE theTable = %TABLE(2) %DEFINE DTW_SAVE_TABLE_IN = "theTable" %FUNCTION(DTW_SQL) doQuery() { SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE='MONITOR' %} %FUNCTION(DTW_REXX) analyze_table(myTable) { %EXEC{ anzTbl.cmd %} %} %HTML(doTable) { @doQuery() @analyze_table(theTable) %}
REXX FUNCTION ブロックが REXX プログラム anzTbl.cmd を呼び出し、 このプログラムは表変数 theTable を使って表の中のデータを分析します。 変数 theTable は、前の SQL 関数呼び出しで戻されたものです。
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
照会の結果セット内の行の合計数を TOTAL_ROWS に割り当てるように、 データベース言語環境に指定します。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
OS/400、OS/2、Windows NT、および UNIX ユーザーの場合: この変数を言語環境に渡すには、 Net.Data 初期設定ファイルファイルのデータベース言語環境の ENVIRONMENT ステートメントに IN 変数としてこの変数を組み込みます。 データベース言語環境ステートメントの詳細については、 Net.Data 管理およびプログラミングの手引き の構成の章を参照してください。
OS/390 ユーザーの場合: DTW_SET_TOTAL_ROWS は、マクロで定義する際に、 暗黙的にデータベース言語環境に渡されます。
パフォーマンス上のヒント: DTW_SET_TOTAL_ROWS を YES に設定すると、 合計行を判別するためにデータベース言語環境がすべての行を検索しなければならなくなるので、 パフォーマンスが影響を受けます。
値
DTW_SET_TOTAL_ROWS="YES"|"NO"
値 | 説明 |
---|---|
YES | 行の合計数の値を TOTAL_ROWS 変数に割り当てる。 重要: 照会から戻された行の数を判別するために変数 TOTAL_ROWS を参照したい場合は、 この値を設定しなければならない。 |
NO | Net.Data は TOTAL_ROWS 変数を設定せず、 マクロで TOTAL_ROWS を参照することはできない。NO はデフォルト。 |
例
例 1: TOTAL_ROWS を使用するために DTW_SET_TOTAL_ROWS を定義する
%DEFINE DTW_SET_TOTAL_ROWS="YES" ... %FUNCTION (DTW_SQL) myfunc() { select * from MyTable %report { ... %row ... %} <P>Your query is limited to $(TOTAL_ROWS) rows. The query returned too many rows. %} %}
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
| X |
|
|
|
|
目的
リモート・データベース・サーバーへの接続を確立します。 変数は、ローカル DB2 サブシステムがリモート・サーバーを認識するための名前を指定します。 LOCATION の値は、通信データベース (CDB) の SYSIBM.SYSLOCATIONS 表に定義しなければなりません。 この変数がマクロ内で定義されていない場合、 マクロによって発行される SQL 要求はすべてローカル DB2 サブシステムで実行されます。
要件: この変数の値をマクロで有効にするには、 変数を SQL 言語環境の ENVIRONMENT ステートメントにリストする必要があります。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
LOCATION="remote_dbase_name"
値 | 説明 |
---|---|
remote_dbase_name | CDB の SYSIBM.SYSLOCATIONS 表で定義されている、有効なリモート・データベース・サーバーの名前。 名前は 8 文字以内です。 |
例
例 1: DEFINE ステートメントでリモート・データベース・ロケーションを定義する
%DEFINE LOCATION="QMFDJ00"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X |
| X | X | X | X |
目的
データベース言語環境にユーザー ID を渡すことによって、 保護されたデータへのアクセスを提供します。 この変数は PASSWORD と一緒に使用して、DB2 の機密保護アルゴリズムを取り込みます。
OS/400 ユーザー: DATABASE 変数が定義されていない場合、 あるいは "*LOCAL" という値に設定されている場合には、 OS/400 は LOGIN と PASSWORD をともに無視します。 データベース・アクセスは、Net.Data が実行されているユーザー・プロファイルを介して経路指定されます。
機密保護のヒント: この値を Net.Data マクロにコーディングすることもできますが、 アプリケーション・ユーザーに HTML 形式でユーザー ID を入力させることをお勧めします。 さらに、Web サーバー ID のデフォルト値を使用すると、 機密保護要件に合わない可能性のあるアクセス・レベルを提供します。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
LOGIN="database_user_id"
値 | 説明 |
---|---|
database_user_id | 有効なデータベース・ユーザー ID。 デフォルトでは、Web サーバーを開始したユーザー ID を使用します。 |
例
例 1: ユーザー ID DB2USER へのアクセスを制限する
%DEFINE LOGIN="DB2USER"
例 2: HTML 形式の入力行の使用
USERID: <INPUT TYPE="text" NAME="LOGIN" SIZE=6>
この例は、アプリケーション・ユーザーが自分のユーザー ID を入力できるように、 HTML 形式の一部として含めることができる行を示します。
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
|
|
|
|
| X |
|
|
|
目的
SQL の結果セットの中に戻される NULL 値を表すために、 ユーザーが DTW_SQL 言語環境に提供できるストリングを指定します。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
NULL_RPT_FIELD="null_char"
値 | 説明 |
---|---|
null_char | SQL の結果セットの中に戻される NULL 値を表すストリングを指定する。 デフォルトは空ストリング。 |
例
例 1: SQL 言語環境で NULL 値を表すストリングを指定する
%DEFINE NULL_RPT_FIELD = "++++"
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X |
| X | X | X | X |
目的
データベース言語環境にパスワードを渡すことによって、 保護されたデータへのアクセスを提供します。 この変数は LOGIN と一緒に使用して、DB2 の機密保護アルゴリズムを取り込みます。
OS/400 ユーザー: DATABASE 変数が定義されていない場合、 あるいは "*LOCAL" という値に設定されている場合には、 OS/400 は LOGIN と PASSWORD をともに無視します。 データベース・アクセスは、Net.Data が実行されているユーザー・プロファイルを介して経路指定されます。
機密保護のヒント: この値を Net.Data マクロにコーディングすることもできますが、 アプリケーション・ユーザーに HTML 形式でパスワードを入力させることをお勧めします。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
PASSWORD="password"
値 | 説明 |
---|---|
password | データベース言語環境への自動アクセスを提供する、有効なパスワードを指定する。 |
例
例 1: パスワード NETDATA を持つアプリケーション・ユーザーへのアクセスを制限する
%DEFINE PASSWORD="NETDATA"
例 2: HTML 形式の入力行
PASSWORD: <INPUT TYPE="password" NAME="PASSWORD" SIZE=8>
この例は、アプリケーション・ユーザーが自分のパスワードを入力できるように、 HTML 形式の一部として含めることができる行を示します。
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
Web ブラウザーで使用される照会の SQL を隠すかまたは表示します。 テスト中に SQL を表示すると、Net.Data マクロをデバッグするのに特に便利です。SHOWSQL は、 Net.Data 構成ファイルで DTW_SHOWSQL が YES に設定されている場合のみです。DTW_SHOWSQL 構成変数に関する詳細は、 Net.Data 管理およびプログラミングの手引き の構成の章を参照してください。
DEFINE ステートメントまたは @DTW_ASSIGN() 関数を使用して、この変数の値を指定してください。
値
SHOWSQL="YES"|"NO"
値 | 説明 |
---|---|
YES | データベースに送信される照会の SQL を表示する。 |
NO | データベースに送信される照会の SQL を隠す。 NO はデフォルト。 |
例
例 1: すべての SQL 照会を表示する。
構成ファイル中、以下を行います。
DTW_SHOWSQL YES
マクロ中、以下を行います。
%DEFINE SHOWSQL="YES"
例 2: HTML 形式の入力を使って、 SQL を表示すべきか否かを指定する。
構成ファイル中、以下を行います。
DTW_SHOWSQL YES
マクロ中、以下を行います。
SHOWSQL: <INPUT TYPE="radio" NAME="SHOWSQL" VALUE="YES"> Yes <INPUT TYPE="radio" NAME="SHOWSQL" VALUE="" CHECKED> No
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
データベースから戻された SQL 状態値をアクセスまたは表示します。
この変数は事前定義変数であり、その値を変更することはできません。 この変数は変数参照として使用してください。
例
例 1: REPORT ブロックで SQL 状態を表示する
%FUNCTION (DTW_SQL) val1() { select * from customer %REPORT { ... %ROW { ... %} SQLSTATE=$(SQL_STATE) %}
AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | SCO | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
Net.Data が各 SQL コマンドの後、または HTML ブロックのすべての SQL コマンドが正常に終了した後のどちらで COMMIT を出すかを決定する、 SQL コマンドのトランザクション効力範囲を指定します。 コミットの前にすべての SQL コマンドが正常に終了する必要があると指定した場合、 SQL コマンドが 1 つでも失敗すると、 そのブロックで同じデータベースに対してそれ以前に実行されたすべての SQL がロールバックされます。
TRANSACTION_SCOPE 変数を有効とするには、 Net.Data 構成ファイルの ENVIRONMENT ステートメントにこの変数を組み込みます。これで、 この変数の値は、DEFINE ステートメントを使って、または @DTW_ASSIGN() 関数で指定できます。
整合性の考慮事項: OS/400 と OS/390 以外のオペレーティング・システムでは、 以下の条件がすべて満たされる場合、 データベースへの更新が失敗したという応答を受け取ると、 同じ HTML ブロックでアクセスされる他のデータベースへの更新がコミットされても、 失敗した更新はロールバックされる可能性があります。
OS/400 で、または IBM の DataJoiner を使って、Net.Data から複数のデータベースにアクセスしている場合、 Net.Data から更新すると、複数データベースの更新が調整され、整合性が保たれます。
OS/400 および OS/390 では、TRANSACTION_SCOPE = "MULTIPLE" を指定すると、 1 つの HTML ブロックから出されたすべての IBM データベース更新が一緒にコミットまたはロール・バックされます。
OS/400 以外のオペレーティング・システムでは、REXX、Perl、および Java 言語環境は、 独自の別々のオペレーティング・システム・プロセスで実行します。 したがって、 これらの言語環境から発行されたデータベース更新はすべて、 Net.Data の TRANSACTION_SCOPE 値に関係なく、 Net.Data マクロで発行されたデータベース更新とは別々にコミットまたはロールバックされます。
値
TRANSACTION_SCOPE="SINGLE"|"MULTIPLE"
値 | 説明 |
---|---|
SINGLE | Net.Data は、HTML ブロック内のそれぞれの SQL コマンドが正常に終了した後で COMMIT を発行する。 |
MULTIPLE | Net.Data は、HTML ブロック内のすべての SQL コマンドが正常に終了した後でのみ COMMIT を発行する。 MULTIPLE はデフォルト。 |
例
例 1: 各トランザクションの後で COMMIT を発行するように指定する
%DEFINE TRANSACTION_SCOPE="SINGLE"