IBM Books

Net.Data プログラミング・ガイド


第 4 章 Net.Data の呼出し

Net.Data は、 共通ゲートウェイ・インターフェース (CGI) プログラムとして実行されるようにセットアップすることもできますし、 あるいは、ほとんどのプラットフォーム用で、Lotus Go Webserver、 インターネット接続サーバー (ICAPI)、Netscape サーバー (NSAPI)、 および Microsoft インターネット・サーバー (ISAPI) のような Web サーバー API と実行するようにセットアップすることもできます。 Net.Data を呼び出すのに使用する構文は、Net.Data がどのように構成されるかにより異なります。 詳細については、第 8 章 "パフォーマンスの改善" を参照してください。

どの方式を使用するときでも、Net.Data は、 HTML アンカー参照、HTML フォーム、または URL として直接、 Web ブラウザーから呼び出されます。CGI アプリケーション、 または API プロセスを呼び出す参照、フォーム、または URL を Web サーバーが受信したあと、 Net.Data が開始されます。 Web サーバーは、Net.Data マクロ・ファイルの名前、 Net.Data マクロ内の HTML ブロックの名前、および任意の入力変数を、 Net.Data に渡します。

Net.Data マクロが完了するのに長時間かかる場合 (たとえば、 リモート・データベースに接続する場合) には、 スクリプト・タイムアウト値の変更を考慮してください。 通常、デフォルトのタイムアウトは 5 分であり、この値でほとんどのマクロに十分です。 ご使用の Web サーバーの資料で、特有の指示を参照してください。

これらの例は、Net.Data を CGI アプリケーションとして呼び出すことのできる別の方法を示しています。 次のストリング、

cgi-bin/db2www

これは、Net.Data を呼び出すストリングを表すのに使用され、 ほとんどのシステムのデフォルトです。 ご使用の Web サーバーの資料の説明に従って、 Web サーバーの構成ファイルにこのストリングを定義することができます。

server
Web サーバーの名前。サーバーがローカル・サーバーである場合は、 サーバー名を省略し、相対 URL を使用することができます。

filename.ext
Net.Data マクロ・ファイルの名前と拡張子。

block
指定された Net.Data マクロ・ファイル内の HTML ブロックの名前。

method
フォームで使用する HTML メソッド。POST をお勧めします。

?name=val&...
Net.Data に渡される 1 つまたは複数の任意指定パラメーター。たとえば、 ユーザー ID を渡して、 アプリケーション・ユーザーが 1 回それを入力するだけでよいようにしたり、 アプリケーションのバックアウトが可能になるように Net.Data マクロ名を渡したりできます。

ICAPI は、CGI と同じ構文を使用し、 Web サーバー構成ファイル httpd.conf によって管理されます。ISAPI または NSAPI を使用する場合は、 "ISAPI の使用" および "NSAPI の使用" の説明に従って Net.Data を呼び出してください。

パラメーターがある一般的な URL は次のようになります。

http://www.ibm.com/cgi-bin/db2www/queryA.mac/input?field1=custno&field2=custname

アンカー参照から Net.Data に送信されるパラメーターが、 QUERY_STRING インターフェースによって送信されるのに対し、 HTML フォームの入力は標準入力として送信されます。


アンカー参照

アンカー参照は一般に、 ハイパーリンク と呼ばれるか、 または単にリンク と呼ばれます。リンクを使用して、 Net.Data を呼び出すための Web マクロおよび HTML ブロック名を指定します。 リンクにテキストやグラフィックを入れることができます。 リンクされたテキストやグラフィックがクリックされると、 Net.Data マクロが呼び出されます。これは、 リンクを使用して Web ページから呼び出すことができる canned 照会の例です。 (canned 照会は、入力データを必要としない SQL 照会です。)

<a href="http://www.ibm.com/cgi-bin/db2www/listA.mac/report">
List all monitors</a>

このリンクは次のマクロを呼び出します。

%DEFINE DATABASE="MNS97"
 
%FUNCTION(DTW_SQL) myQuery(){
SELECT MODNO, COST, DESCRIP FROM EQPTABLE
WHERE TYPE='MONITOR'
%}
 
%HTML(report){
@myQuery()
%}

この照会から、それぞれのモニターの型式番号、コスト、 および記述を含む、すべてのモニターの表が返されます。 この例は、デフォルトのレポートを生成します。 REPORT ブロックによってレポートをカスタマイズする方法については、 "REPORT ブロック" を参照してください。

一般に、Net.Data マクロの各ブロックは %block_name{ から始まり、 %}で終わります。構文の詳細については、 Net.Data リファレンス・ガイド を参照してください。


HTML フォーム

HTML フォームにより、Net.Data マクロ操作をカスタマイズすることができます。このフォームは、 ほとんどのアプリケーションに役立ちます。 この例は、上記のモニター・リストの例と同様ですが、 アプリケーション・ユーザーが、どの製品を表示するか選択できるようにします。 次のようにリンクからマクロを呼び出すことができます。

<a href="http://www.ibm.com/cgi-bin/db2www/equiplst.mac/input">
Show hardware list</a>

以下は、リンクが呼び出すマクロです。

%DEFINE DATABASE="MNS97"
 
%HTML(input)%{
<H1>Hardware Query Form</H1>
<HR>
<FORM METHOD=POST ACTION="cgi-bin/db2www/equiplst.mac/report">
<P>What type of hardware do you want to see?
<MENU>
<LI><INPUT TYPE="RADIO" NAME="hdware" VALUE="MON" checked> Monitors
<LI><INPUT TYPE="RADIO" NAME="hdware" VALUE="PNT"> Pointing devices
<LI><INPUT TYPE="RADIO" NAME="hdware" VALUE="PRT"> Printers
<LI><INPUT TYPE="RADIO" NAME="hdware" VALUE="SCN"> Scanners
</MENU>
 
<INPUT TYPE="SUBMIT" VALUE="Submit">
</FORM>
%}
%FUNCTION(DTW_SQL) myQuery(){
SELECT MODNO, COST, DESCRIP FROM EQPTABLE
WHERE TYPE='$(hdware)'
%REPORT{
<H3>Here is the list you requested</H3>
%ROW{
<HR>
$(N1): $(V1), $(N2): $(V2)
<P>$(N3): $(V3)
%}
%}
%}
 
%HTML(report){
@myQuery()
%}

アプリケーション・ユーザーが選択を行い、Submit ボタンを押すと、 Web サーバーは FORM タグの ACTION パラメーターを処理し、それにより、 HTML REPORT ブロックを呼び出す Net.Data が起動されます。 ROW ブロックで使用する変数の詳細については、 Net.Data リファレンス・ガイド を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]