SQL エラーの戻りコードの処理

DB2 製品には、SQLCODE エラーの値を可読テキスト メッセージに翻訳するルーチンが含まれます。Open PL/I の DB2 SQL プリコンパイラでプログラムを処理する場合、そのプログラムには %INCLUDE 文が挿入され、その結果プログラムに組み込まれるインクルード ファイルには、次のようにこの SQLCODE 翻訳ルーチンの宣言がエントリとして含まれます。

declare sqldb2err entry(fixed bin(15) value,
                                    /* Buffer Size   */
               fixed bin(15) value, /* Line Width    */
               any,                 /* SQLCA         */
               any)                 /* Buffer        */
      returns(fixed bin(15))
      external('sqlgintp');

戻りコードの値は次のようになります。

例:

declare errmsg character(200);

exec sql connect to MYDB;
if sqlca.sqlcode < 0 then do;
   put skip list('Connect failed');
   /* Now print out reason for failure for most */ 
   /* recent SQL statement (i.e., the connect) */ 
   msg_len = sqldb2err(size(errmsg),0,sqlca,errmsg); 
   put skip list(substr(errmsg,1,msg_len));
   return;
   end;

sqldb2err は宣言する必要はありません。上記のように、自動的に宣言されます。

このルーチンの詳細については、ご使用の IBM プラットフォーム固有の『DATABASE 2 Programming Reference』マニュアルに記載されている「SQLGINTP (Get Error Message)」を参照してください。