アプリケーション開発の手引き

プリコンパイル

IBM のリレーショナル・データベース・システムのプリコンパイラーは、システムによりいくらか差があります。 DB2 ユニバーサル・データベース用のプリコンパイラーは、以下の点で AS/400 サーバー・プリコンパイラーとは異なっています。

ブロック化

DB2 コネクトは DB2 データベース・マネージャーのブロック化バインド・オプションをサポートしています。

UNAMBIG
確定カーソルのみをブロック化する (省略時の設定)。

ALL
未確定カーソルをブロック化する。

NO
カーソルをブロック化しない。

DB2 コネクト・プログラムは、 DB2 データベース・マネージャーの構成ファイルに定義されているブロック・サイズを RQRIOBLK フィールドに使用します。現行バージョンの DB2 コネクトでは、 32 767 までのブロック・サイズをサポートしています。 DB2 データベース・マネージャー構成ファイルにそれより大きい値が指定されても、 DB2 コネクトは 32 767 を値として使用しますが、 DB2 データベース・マネージャー構成ファイルをリセットすることはしません。ブロック化は、動的 SQL の場合も静的 SQL の場合も同じブロック・サイズを使用して、同じ方法で処理されます。
注:ほとんどの AS/400 サーバー・システムは動的カーソルを未確定カーソルとみなしていますが、 DB2 ユニバーサル・データベース・システムは一部の動的カーソルを確定カーソルとみなします。混乱を避けるため、DB2 コネクトには BLOCKING ALL を指定できます。

管理 API 解説書 およびコマンド解説書 でリストされている CLP、コントロール・センター、または API を使用し、 DB2 データベース・マネージャー構成ファイルでブロック・サイズを指定します。

パッケージ属性

パッケージには、以下の属性があります。

集合 ID
パッケージの ID です。 PREP コマンドで指定できます。

所有者
パッケージの所有者の許可 ID です。 PREP または BIND コマンドで指定できます。

作成者
パッケージをバインドするユーザー名です。

修飾子
パッケージ内のオブジェクトの暗黙修飾子です。 PREP または BIND コマンドで指定できます。

それぞれの AS/400 サーバー・システムには、これらの属性の使用に制限があります。

DB2 ユニバーサル・データベース (OS/390 版)
4 つの属性すべてが異なってもかまいません。異なる修飾子を使用するには、特別の管理特権が必要です。これらの属性の使用条件の詳細については、DB2 ユニバーサル・データベース (OS/390 版) 用のコマンド解説書 を参照してください。

DB2 (VSE および VM 版)
すべての属性が一致しなければなりません。 USER1 がバインド・ファイルを作成し (PREP を使用して)、 USER2 が実際にバインドを実行する場合、 USER2 は USER1 のバインドに対する DBA 権限が必要です。属性に使用できるのは USER1 のユーザー名だけです。

DB2 ユニバーサル・データベース (AS/400 版)
修飾子が集合名と一致しなければなりません。修飾子と所有権の関係は、オブジェクトに対する特権の付与および取り消しに影響します。ログオンされたユーザー名は集合 ID で修飾されていない限り、作成者または所有者になります。集合 ID で修飾されている場合は、集合 ID が所有者です。集合 ID は、修飾子として使用される以前にすでに存在していなければなりません。

DB2 ユニバーサル・データベース
4 つの属性すべてが異なってもかまいません。異なる所有者の使用には管理権限が必要であり、バインダーは (スキーマがすでに存在すれば) スキーマに対する CREATEIN 特権を持っていなければなりません。

注:DB2 コネクトには、DB2 ユニバーサル・データベース (OS/390 版) および DB2 ユニバーサル・データベースのために、 SET CURRENT PACKAGESET コマンドが備えられています。

C ヌル終了ストリング

CNULREQD バインド・オプションは、LANGLEVEL オプションを使用して指定されたヌル終了ストリングの処理を一時変更します。

LANGLEVEL オプションが MIA または SAA1 の設定値で準備された場合に、ヌル終了ストリングがどのように処理されるかについては、 C および C++ での Null 終了ストリングを参照してください。

CNULREQD 省略時設定は YES です。このオプションが YES に設定されている場合、ヌル終了ストリングは MIA 規格に準拠して解釈されます。 DB2 ユニバーサル・データベース (OS/390 版) に接続する場合、 CNULREQD を YES に設定するよう強くお勧めします。 (ヌル終了ストリングに関して) SAA1 規格でコーディングされたアプリケーションをバインドする場合は、 CNULREQD オプションを NO に設定する必要があります。 NO に設定しなかった場合、LANGLEVEL を SAA1 に設定して入力したとしても、ヌル終了ストリングは MIA 規格に準拠して解釈されてしまいます。

スタンドアロンの SQLCODE および SQLSTATE

ISO/ANS SQL92 で定義されているスタンドアロンの SQLCODE および SQLSTATE 変数は、 LANGLEVEL SQL92E プリコンパイル・オプションによってサポートされています。 LANGLEVEL がサポートされていなければ、プリコンパイル時にそのことを示す SQL0020W 警告が出されます。この警告は、コマンド解説書 の LANGLEVEL MIA の下にリストされている、 LANGLEVEL SQL92E のサブセットである機能だけに適用されます。


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