目次に戻る 仕様および制限事項

NOMAD


NPCファイルの再利用
NOMADは実行時にプレスキャン(PRESCANコマンドの発行と同様)を行います。このプレスキャンによって「プロシージャ名.npc」ファイルが生成されます。
ただし、実行ディレクトリ(dsm.iniファイルのbnCurPathに設定されているディレクトリ)やSERACHパスの有効なディレクトリに、既に「プロシージャ名.npc」が存在する場合は、「プロシージャ名.nom」とのタイムスタンプを比較し、プロシージャの方が新しければプレスキャンを行い、NPCファイルを生成します。そうでない場合はプレスキャンは実行されず、NPCファイルが再利用されます。

以下は、NPCファイルの再利用に関する重要な注意事項です。
「プロシージャ名.nom」と「プロシージャ名.npc」とのタイムスタンプを比較する際は、「プロシージャ名.npc」を生成した元のプロシージャとの比較ではありません。タイムスタンプ比較時に『有効な』プロシージャとの比較を行うため、環境が適切でない場合はNPCが生成されず再利用される可能性がありますので、ご注意ください。

SCHEMAの32KBサイズ制限
NDBおよび外部DBに作成するSCHEMAファイルの内容の制限は32KBです。この制限を越えた場合、OracleとSQL Serverではエラーコード6104が返されます。DB2 UDBではエラーコード6083が返されます。エラー内容は、各インターフェースの注意事項を確認してください。

外部DBに発行するSQL文の32KBサイズ制限
NOMADから各DBインターフェースを通じて外部DBに送信されるSQL文の制限は32KBです。
NOMADアプリケーションでは、生成されるSQL文のサイズを知る方法がありませんが、この制限を越えた場合にはエラーコード22が返されます。

DBの項目は300項目までをサポート
NDBおよび外部DBにて1つのスキーマ内に含めることのできるITEMの総数は、300までをサポートとします。ただし、DBの仕様により、1テーブル内に含むことのできる項目の数が300よりも小さい場合はこの限りではありません。なお、この制限を越えた場合でもエラーは返されませんが、予期せぬ動作をする可能性がありますのでご注意ください。

外部DBへのアクセスにおける関数の使用制限
外部DBへのアクセスの際、関数を使用せずに、あらかじめ関数を使用して変数に代入したものを使用されることを推奨します。WHERE節内も同様です。もし外部DBへのアクセスで使用した場合、関数によっては、あらかじめ関数を使用した場合と明らかにレスポンスが異なることがあります。
例:

CHANGE ITEM2=LOWER(&ITEM2) WHERE ・・・

このような場合は、以下のように記述してください。

&TMPSTR = LOWER(&ITEM2);
CHANGE ITEM2=&TMPSTR WHERE ・・・


Oracleインターフェース
「nomad.ini」におけるSAVEの設定
Oracleインターフェースを使用する際には、「nomad.ini」ファイルに「SAVE=UNPOSITIONED」と記述してください。記述が無い場合や「SAVE=POSITIONED」と記述されている場合、正しく動作しない事があります。


DB2 UDBインターフェース
DB2 UDBにおけるFOR UPDATEの制限
DB2 UDBの仕様により、SELECT内でORDER BY、GROUP BY、HAVINGが存在する場合、対象レコードにFOR UPDATEをかけることができません。


SQL Serverインターフェース
ソート順
SQL Serverにおけるソート順は、バイナリ順のみをサポートします。
SQL Server Ver7.0以降では、SQL Serverインストール時のデフォルト設定がバイナリ順ではないのでご注意ください。