Net.Data プログラミング・ガイド
Net.Data には、Web ページ開発を簡略化するための組込み関数が多数用意されています。
これらの関数は Net.Data によってすでに定義されているので、
ユーザーが FUNCTION ブロックにそれらを定義する必要はありません。
ユーザー定義関数を呼び出すことのできるマクロ内の任意の場所で、
組込み関数を呼び出すだけですみます。
組込み関数は、それらの結果を 3 通りの方法で返すことができます。
組込み関数の接頭部によって、
各組込み関数がその結果をどのように戻すかを指示することができます。使用できる接頭部は次のとおりです。
- DTW_、DTWF_、および DTWR_: 呼出しの結果は、
出力パラメーターに返されるか、
または結果が返されません。DTWF_ と DTWR_ は、
それぞれフラット・ファイルと Web レジストリーです。
- DTW_r、DTWF_r、および DTWR_r: 結果は、
関数呼出し値に返されます。
- DTW_m: 複数の結果が、
関数に渡されるパラメーターに返されます。
組込み関数には、各タイプがないものもあります。
詳細については、
Net.Data リファレンス・ガイド を参照してください。
このセットの関数は、データの変更や、システム・サービスへのアクセスを行うことで、
Web ページの開発に役立ちます。
これらの関数を使用して、環境変数を照会および設定し、
HTML エスケープ・コードを使用し、
システムからその他の有用な情報を入手することができます。
数学関数では数学演算が実行されるので、
数値データを計算したり変更したりすることができます。
標準の数学演算のほかにも、モジュラス除算を実行し、
結果精度を指定し、科学表記を使用することもできます。
ストリング関数では、ストリングを変更することができます。
ストリングの大文字小文字を変更したり、文字を挿入または削除したり、
別の変数にストリング値を割り当てたり、その他の有用な機能を利用できます。
ワード関数では、文字ストリング内のワードを操作することができます。
大半のワード関数は、ストリング関数と同じ働きをしますが、
ワード全体に対する操作は行いません。
ストリング内のワード数のカウント、ワードの除去、ストリングでのワード検索、
など多様な操作を実行することができます。
テーブル関数を使用して、Net.Data テーブル変数を操作することができます。
テーブル変数には、値の配列と、それらに関連した列名が含まれます。
テーブル変数は、関数に値のグループを渡す簡便な手段です。
データ・ソースとしてフラット・ファイル (または平文テキスト・ファイル) を使用する場合、
フラット・ファイル・インターフェース (FFI) とそれに関連付けられた Net.Data 関数を使用して、
Web サーバーでファイルのオープン、クローズ、読取り、書込み、および削除を行うことができます。
FFI_PATH 変数のパスを初期設定ファイルに指定しなければなりません。
ファイル言語サポートは FFI 関数を使用して、
ブラウザーを介した Web クライアントの要求により Web サーバー上のファイルからの読取り、
またはファイルへの書込みを行います。
FFI はファイルをレコード・ファイルとして表示します。つまり、
各レコードは Net.Data マクロ・テーブル変数の行と同等で、
レコードの各値は Net.Data マクロ・テーブル変数のフィールド値と同等になります。
FFI は、ファイルから Net.Data マクロ・テーブルの行にレコードを読み込み、
テーブルからレコードに行を書き込みます。
FFI 関数がアクセスできるファイルを、
Net.Data 初期設定ファイルの FFI_PATH ステートメントで指定することができます。
FFI は、そのステートメントにリストされているパスだけしか探索しないので、
他のディレクトリーのファイルは安全です。
ステートメントの例は次のとおりです。
FFI_PATH C:\public;.\;E:\WWW;E:\guest;A:
FFI_PATH にリストされたパスは、最初から最後に検索されます。
検出された最初のコピーが使用されます。
初期設定ファイルに FFI_PATH がない場合、FFI は、
現行ディレクトリーでファイルを見つけようとするか、または、
パスが指定されていれば (たとえば、../reports/nov96.txt)、
そのパスを持つファイルを見つけようとします。パス検索の詳細については、
Advanced Details を参照してください。
Net.Data 初期設定ファイルは、FFI_PATH なしの状態で配布されます。
FFI のセットアップを行うまえに、あらかじめ計画をたててください。以下の事項を検討してください。
- フラット・ファイル操作に使用するのに適しているディレクトリーを選択します。
検索をこれらのディレクトリーに制限するには、
これらのディレクトリーを FFI_PATH に追加する必要があります。
- マクロでの DTWF_REMOVE またはその他のエクスポート操作を実行する担当者が、
現行ディレクトリーにある拡張子 .dll および .cmd を持つファイルを除去したり変更したりすることのないように、
それらの担当者に十分注意を促してください。
- システムにどのマクロを追加するかを適度に制御して、
システムのファイルを保護するための適切なステップをとってください。
- FFI_PATH に、
無名の FTP ユーザーがパスへの書込みを行えるようなパスを指定しないでください。
そのようなパスを指定すると、誰かがシステムに、
前は許可されていなかったアクションを可能にする Net.Data マクロを入れる可能性があります。
- Net.Data 初期設定ファイルのパスを FFI_PATH に追加しないことをお勧めします。
一般的な考慮事項
- 平文テキスト・ファイルをインポートすることはできますが、
Net.Data マクロ構文は Net.Data により解釈され、
ブラウザーによるテキストのフォーマットには、
テキストに入っている可能性のある HTML タグが使用されます。
- FFI パラメーターには、
オペレーティング・システムに大文字小文字の区別がある場合にのみ、
大文字小文字の区別があります。
現行ディレクトリー
- Net.Data の現行ディレクトリーは、通常は \www\cgi-bin ですが、
Web サーバーの構成により異なります。サーバーのデフォルトが経路指定を要求する場合や、
資源マッピングが変更される場合も、
現行ディレクトリーが変更される可能性があります。
- FFI_PATH で現行ディレクトリーを参照する方法としては、
.\ などのように、ドットとスラッシュを指定する方法が挙げられます。
FILENAME パラメーターのファイル名の前へのドットとスラッシュの追加により、
FFI が現行ディレクトリーだけを探索することを指示します。読取り操作の場合、
これは、FFI_PATH のその他のパスが検索されないことを示します。
DELIMITER パラメーター
- 区切り文字は、要求された変換に応じて FFI が、
ファイルをパーツ (たとえば、行の列) に分割するときに使用する、
フラグまたは区切り記号です。
- 読取り操作の場合、区切り文字は、ファイルの内容をテーブルの行と列に分けます。
書込み操作の場合、テーブルの行と列の値の終りを示すため、
区切り文字がファイルに入れられます。
区切り文字は、Net.Data マクロ・ストリングとして FFI に渡されます。
区切り文字パラメーターに明示的にリストされていないかぎり、
文字の終りにヌル文字は組み込まれません。
これは、区切り文字内でヌル文字を使用することを意味します。区切り文字パラメーターは、
"" (2 つの 2 重引用符) を使用した空ストリングではなく、
"\0" (2 重引用符で囲んだ円記号とゼロ) で指定しなければなりません。
ASCIITEXT 変換が指定されている場合は、区切り文字に改行文字が使用され、
要求された区切り文字は無視されます。
- 読取り操作に使用したものとは異なる区切り文字が書込み操作に使用されると、
ファイルに不必要な変更が起こることがあります。
読取り操作に使用したものと異なる区切り文字を書込み操作に使用すると、
ファイルは新しい区切り文字で書き込まれます。
- 区切り文字の最大長は、256 文字です。
FFI_PATH
- FFI_PATH のパスには、有効な印刷可能文字が含まれていなければなりません。
FFI では、? (疑問符)、
または " (2 重引用符) を含むパスは認められません。
- FFI_PATH にリストされたパスのサブディレクトリーは、
FFI_PATH に明示的に指定されていないかぎり、検索されません。たとえば、
FFI は (FFI_PATH 中の) .\test を、
ディレクトリー test (FILENAME パラメーターの先頭で、
検出される可能性があります) の正確な一致であるとは見なしません。
そのため、
test という名前のサブディレクトリーで myfile.txt という名前のファイルを検出するには、
パス .\test が FFI_PATH に入っていなければならず、
また FILENAME パラメーターは、
.\test\myfile.txt または myfile.txt でなければなりません。
このことは、FILENAME パラメーターで test\myfile.txt を要求して、
FFI_PATH に現行ディレクトリーを組み込むこと(これは、
機能しません) とは異なります。
- 現行ディレクトリーが FFI_PATH で明示的に指定されていない場合、
FFI_PATH にリストされている明示的に指定されたすべてのパスを検索したあとで、
最後に検索されます。
DTWF_SEARCH 関数
- DTWF_SEARCH に返されるテーブルには、3 つの列があります。
最初の 2 列には、一致が見いだされた行および列番号が含まれ、最後の列には、
SearchFor パラメーターに指定された文字を含む列値が含まれます。
たとえば、ファイルの 4 番目の行の列 3 に一致文字が含まれている場合、
返されるテーブルでは、最初の列に、元のファイルの行を示す番号 "4"、
2 番目の列に、一致が入っているファイルの列を示す番号 "3"、
3 番目の列に完全な列値が含まれている行があります。
- SearchFor パラメーターに、
区切り文字パラメーターの内容を組み込むことはできません。
STARTROW パラメーターと ROWS パラメーター
- DTWF_DELETE、DTWF_INSERT、DTWF_UPDATE、および DTWF_WRITE の場合、
最後の行よりも大きい StartRow 値が指定されると、
StartRow は、最後の行を指示するように変更され、
エラーが戻ります。
- DTWF_READ および DTWF_SEARCH の場合、Rows 値は、
テーブルの行数として返されます。
TABLE パラメーター
- FFI テーブルの行の最大長は、16383 文字です。この制限には、
Net.Data マクロ・テーブルのそれぞれの列ごとに 1 つのヌル文字も含まれます。
TRANSFORM パラメーター
- このパラメーターは、Net.Data マクロ・テーブルの行と列に関して、
ファイルをどのようなパーツに分割するかを指示します。たとえば、
ASCIITEXT 変換は、ファイルの各行が Net.Data マクロ・テーブルの行に対応し、
Net.Data マクロ・テーブルに 1 つの列しかないことを意味します。
DELIMITED 変換は、DELIMITER を検出するために行内の文字が検査されること、
および DELIMITER のあとにあるのが、次の列の内容であることを意味します。
- ASCIITEXT 変換および DELIMITED 変換では、ファイルの改行文字は、
Net.Data マクロ・テーブルの行の終りを示します。
ファイル・ロック
- ファイルを DTWF_OPEN によってオープンしないかぎり、ファイルはロックされません。
ファイルがロックされないと、読み取られた時点と更新された時点の間に、
ファイルが変更される可能性があります。
この結果、以前に行った変更が失われることがあります。
DTWF_OPEN を使用すると、
マクロの実行時にファイル・システムのロック機構を使用してファイルがオープンされます。
DTWF_APPEND
- ファイルの現行の内容は、DTWF_APPEND 使用の結果に影響します。特に、
最後の行の最後の列の内容が影響します。
ファイルの最後の行の最後の列値のあとに改行がある場合、
付加されるデータは新しい行に入れられます。
それ以外の場合、付加されるデータは、ファイルの最後の行の一部分になります。
いくつかのプラットフォームでは Net.Data Web レジストリーが使用可能であり、
アプリケーション関連データのための永続的な記憶域が提供されます。
Web レジストリーは、
Web ベースのアプリケーションによって実行時に動的にアクセスできる、
構成情報およびその他のデータを保管するために使用することができます。
Web レジストリーへのアクセスは、
Net.Data および Web レジストリー組込みサポートを使用した Net.Data マクロから、
および CGI プログラムからのみ、行うことができます。
標準 Web ページ作成では、URL をページの HTML ソースに直接入れることが必要です。
これにより、ハイパーリンクの変更がむずかしくなります。
またその静的な性質によって、
Web ページに容易に配置することのできるハイパーリンクのタイプも制限されます。
Web レジストリーを使用してアプリケーションに関連したデータ (たとえば、
URL) を保管すれば、動的に設定されたハイパーリンクによる HTML ページの作成の援助となります。
レジストリーへの書込みアクセスを持つアプリケーション開発者および Web 管理担当者が、
レジストリーに情報を保管し、それを保守することができます。
アプリケーションは実行時に、
それらに関連付けられたレジストリーから情報を取り出します。
これによって、柔軟性のあるアプリケーション設計を利用でき、
アプリケーションとサーバーの移動も可能になります。
動的に設定されたハイパーリンクを使用した HTML ページの作成には、
Net.Data マクロを使用します。
情報は、レジストリー項目の形式で Web レジストリーに保管されます。
各レジストリー項目は、1 対の文字ストリング、
RegistryVariable ストリングと、
対応する RegistryData ストリングの対から構成されます。
ストリングの対で表すことのできるすべての情報を、
レジストリー項目として保管することができます。
レジストリーから特定の項目を探し、取り出すための検索キーとして、
変数ストリングが使用されます。
表 3 に Web レジストリーの内容の例を示してあります。
表 3. Web レジストリーのサンプル
| CompanyName
| WorldConnect
|
| Server
| ftp.einet.net
|
| JohnDoe/foreground
| Green
|
| CompanyURL/IBM Corp.
| http://www.ibm.com
|
| CompanyURL/Sun Microsystems Corp.
| http://www.sun.com
|
| CompanyURL/Digital Equipment Corp.
| http://www.dec.com
|
| JaneDoe/Home_page
| http://jane.info.net
|
以下に、Web レジストリーの使用を考慮する理由をいくつか示します。
- サーバーおよび URL の別名を保管するために Web レジストリーを使用し、
アプリケーションおよびサーバーの再配置を助けることができる。
- アプリケーション開発者は、Web ベースのアプリケーションを、
URL などのデータをレジストリーに事前定義した状態で配布できる。
エンド・ユーザーは、アプリケーションの振舞いを変更するため、
レジストリー・データを修正できる。
- Web レジストリーを使用して、プロダクト名、各国語、
製造業者などにもとづいた URL の検索を実行できる。
Web レジストリーの索引項目は、
その RegistryVariable ストリングに追加の Index ストリングが付加された項目であり、
たとえば、"RegistryVariable/Index" です。
ユーザーは索引ストリングの値を、
索引項目で動作するように設計された組込み関数への個別のパラメーターに指定してください。
複数の索引付きレジストリー項目が同じ RegistryVariable ストリング値を持つことがありますが、
異なる Index ストリング値を持つことでそれらの固有性を保つことができます。
表 4. 索引付き Web レジストリーのサンプル
| Smith/Company_URL
| http://www.ibmlink.ibm.com
|
| Smith/Home_page
| http://www.advantis.com
|
上記の 2 つの索引項目は、
同じ RegistryVariable ストリング値 "Smith" を持っていますが、
それぞれ、索引ストリングは異なっています。そのため、
これらの項目は、Web レジストリー関数により 2 つの個別の項目として扱われます。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]