使用者の手引き
省略時には、
DB2 コネクトは SQLCODE およびトークンを各 IBM ホストまたは AS/400 サーバーから該当する DB2 UDB SQLCODE のシステムへマッピングします。
以下のファイルは、省略時の SQLCODE マッピングのコピーです。
- dcs1dsn.map
- DB2 (MVS/ESA 版) および DB2 UDB (OS/390 版) の SQLCODE をマップします。
- dcs1ari.map
- DB2 (VSE および VM 版) の SQLCODE をマップします。
- dcs1qsq.map
- DB2 UDB (AS/400 版) の SQLCODE をマップします。
OS/2 および UNIX ベースの DB2 システムについては、マッピングは必要ありません。
省略時の SQLCODE マッピングを上書きしたい場合、
または SQLCODE マッピングを持たないホストまたは AS/400 データベース・サーバー (非 IBM データベース・サーバー) を使用している場合は、
これらのファイルの 1 つをコピーして、
それを新規の SQLCODE マッピング・ファイルの基礎として使用することができます。
そのファイルを直接編集するよりは、むしろそれをコピーすることによって、
必要な場合いつでも元の SQLCODE を確実に参照できます。
DCS ディレクトリーまたは DCE 経路指定情報のパラメーター・ストリングに、
新規の SQLCODE マッピング・ファイルのファイル名を指定します。
DCS ディレクトリーの更新の情報については、データベース・ディレクトリーの更新を参照してください。
DCEの使用に関する情報については、付録 D, DCE ディレクトリー・サービスの使用を参照してください。
各マッピング・ファイルは、ASCII エディターを使用して作成、編集できる ASCIIファイルです。
初期インストールでは、
ファイルはインストール・パス内の map ディレクトリーに保管されます。
ファイルには、以下の特殊タイプの行を含めることができます。
- &&
- 理論的なファイルの開始。&& が最初に現れるよりも前の行はすべて、自由形式のコメントとみなされて無視されます。ファイルが && の後に何も含んでいない場合は、SQLCODE マッピングは実行されません。また、前に説明したように、
NOMAP パラメーターを使用することにより SQLCODE マッピングをオフにすることもできます。
- *
- 行の最初の文字として、コメントを示します。
- W
- 行にある唯一の文字として、警告フラグが再マップされるべきことを示します。
省略時には、オリジナルの警告フラグが渡されます。W は大文字でなければなりません。
&& 後のその他のすべての行は、ブランクか、
または以下の書式のマッピング・ステートメントのいずれかです。
input_code [, output_code [, token_list]]
input_code は、以下のいずれかを表します。
- sqlcode
- ホストまたは AS/400 データベース・サーバーからの SQLCODE
- U
- すべての未定義の負の数の SQLCODE (このファイルにはリストされていないもの) は、
指定された output_code にマップされます。output_code がこの行で指定されなかった場合は、元の SQLCODE が使用されます。この文字は必ず大文字です。
- P
- すべての未定義の正の数の SQLCODE (このファイルにはリストされていないもの) は、
指定された output_code にマップされます。output_code がこの行で指定されなかった場合は、元の SQLCODE が使用されます。この文字は必ず大文字です。
- ccnn
- ホストまたは AS/400 データベース・サーバーから得られる SQLSTATE クラス・コード。nn は以下のいずれかです。
- 00
- 非修飾の正常終了
- 01
- 警告
- 02
- データなし
- 21
- カーディナリティー違反
- 22
- データ例外
- 23
- 制約違反
- 24
- 無効なカーソル状態
- 26
- 無効な SQL ステートメント識別子
- 40
- トランザクション・ロールバック
- 42
- アクセス違反
- 51
- 無効なアプリケーション状態
- 55
- 前提条件の状態にないオブジェクト
- 56
- その他の SQL または製品エラー
- 57
- 利用不能なリソースまたは操作員介入
- 58
- システム・エラー
マッピング・ファイル内で明示的に指定されていないこのクラス・コードを伴うすべての SQLCODE に対して、
指定の output_code が使用されます。
この行で output_codeが指定されない場合は、元の SQLCODE が、
コピーされたトークンなしでそれ自体へマップされます。
cc の文字は必ず小文字です。
同じ input_code が 2 回以上マッピング・ファイルに現れた場合は、
最初に現れたものが使用されます。
output_code は、出力 SQLCODE を表します。値が指定されていない場合は、元の SQLCODE が使用されます。
また、出力コードを指定する場合は、以下のいずれかを指定することもできます。
- (s)
- 入力 SQLCODE プラス 製品 ID (ARI、DSN または QSQ) が、
SQLCA メッセージ・トークン・フィールドに入れられます。
元の SQLCODE は、唯一のトークンとして戻されます。
このオプションは、+965と -969 の例外を除き、
未定義の SQLCODE を扱うように設計されています。
+965 または -969 が output_code である場合、
SQLCA の SQLERRMC フィールドに戻されるトークン・リストには、
元の SQLCODE、次に製品識別子、続いて元のトークン・リストが含まれます。
s の文字は必ず小文字です。
- (トークン・リスト)
- トークンのリストで、コンマで分離します。
特定のトークンをスキップするには、コンマだけで指定します。
たとえば、書式 (,t2,,t4) は、
1 番目と 3 番目の出力トークンは空白値であることを意味します。
各トークンは、番号の書式 (n) を持っており、
オプションとしてその前に c、
その後に c または i を付けます。
それは、次のように解釈されます。
- c
- この位置にあるトークンのデータ・タイプは CHAR (省略時値) です。 c が n の前にある場合は、入力トークンを示します。
c が n の後にある場合は、出力トークンを示します。 c の文字は必ず小文字です。
- i
- この位置にあるトークンのデータ・タイプは INTEGER です。i が n の後にある場合は、
出力トークンを示します。i は n の前には来ません。
というのは、IBM ホストまたは AS/400 データベース・サーバー製品は、
CHAR トークンだけをサポートするからです。i の文字は必ず小文字です。
- n
- どのホストまたは AS/400 データベース・サーバーのトークンが使用されているかを示す数字です。それらの数字は、出力 SQLCA 内で配置要求される順序で配置されています。
その数字は、ホストまたは AS/400 データベース・サーバーのトークンを示しています。
その配置は、トークンが SQLCA 内で並べられる順序を示しています。
たとえば、ホストまたは AS/400 データベース・サーバーが 2 つのトークン、1 および 2 を戻すとします。
トークン 2 を出力 SQLCA の中でトークン 1 の前に表示したい場合は、
(2,1) と指定します。
複数のトークン数字は、それらをピリオドで接続することによって、
1 つの CHAR 出力トークンを形成するよう結合させることができます。
コンマは、出力トークンを分離するために使用します。
コンマの前にトークンが指定されていない場合、
その位置では SQLCA 内に出力トークンは組み込まれません。
最後に指定されたトークンに続いて出力 SQLCA に出現するトークンはすべて、
ヌル・トークンへマップされます。
図 6 は、SQLCODE マッピング・ファイルのサンプルを示します。
図 6. SQLCODE マッピング・ファイル
&&
-007 , -007 , (1)
-010
-060 , -171 , (2)
...
-204 , -204 , (c1.2c)
...
-633 , -206 , (,c1i)
-30021 , -30021 , (c1c,c2c)
cc00 , +000
...
U , -969 , (s)
P , +965 , (s)
|
ファイル内の各マッピング・ステートメントの説明は以下のとおりです。
- SQLCODE は -007 から -007 へマップされます。
ホストまたは AS/400 データベース・サーバーから受信する 1 番目のトークンは、
1 番目の出力トークンとして使用され、省略時の設定である CHAR になります。
他のトークンは、転送されません。
- SQLCODE は、-010 から -010 へとマップされます (出力 SQLCODE が指定されていないので) 。
トークンは、出力 SQLCA に配置されません。
- SQLCODE は -060 から -171 へマップされます。
ホストまたは AS/400 データベース・サーバーから受け取った 1 番目の入力トークンは、破棄されます。
2 番目のトークンは、出力 SQLCA で 1 番目のトークンとして使用されます。
それは CHAR です。出力 SQLCA に 2 番目のトークンはありません。
- SQLCODE は -204 から -204 へマップされます。ホストまたは AS/400 データベース・サーバーから受け取る 1 番目と 2 番目のトークンは CHAR です。この 2つの入力トークンは結合され、
SQLCA で 1 番目の出力トークンになる 1 つの CHAR 出力トークンを形成します。
- SQLCODE は -633 から -206 へマップされます。ホストまたは AS/400 データベース・サーバーから受け取られた 1 番目の入力トークンは CHAR です。それは INTEGER へ変換され、出力 SQLCA で 2 番目のトークンとして使用されます。出力 SQLCA の 1 番目のトークンは、コンマで示されているように、ヌルです。
- SQLCODE は -30021 から -30021 へマップされます。ホストまたは AS/400 データベース・サーバーから受け取る 1 番目および 2 番目の入力トークンは CHAR です。
それらは、
出力 SQLCA 内で 1 番目および 2 番目のトークンとして使用されます。
- 00 クラスの SQLSTATE を指定した SQLCA 内の SQLCODE はすべて、
SQLCODE +000 へマップされます。
- 未定義の SQLCODE はすべて -969 へマップされます。
まったく同一なものやマッピングが必要でないものも含め、
マップ可能なコードのすべてがリストされている場合に限り、
このオプションを使用してください。(s) オプションは、
SQLCA の SQLERRMC フィールドに戻されるトークン・リストに、
元の SQLCODE、次に、エラーが発生した製品、
続いて元のトークン・リストが含まれることを示します。
U 項目が組み込まれていない場合、
リストされていないコードはすべて、マッピングされずに渡されます。
- 未定義で正の SQLCODE はすべて、+965 へマップされます。
まったく同一なものやマッピングが必要でないものも含め、
マップ可能なコードのすべてがリストされている場合に限り、
このオプションを使用してください。(s) オプションは、
SQLCA の SQLERRMC フィールドに戻されるトークン・リストに、
元の SQLCODE、次に、警告が発生した製品、
続いて元のトークン・リストが含まれることを示します。
P 項目が組み込まれていない場合、
リストされていない正のコードはすべて、マッピングされずに渡されます。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]