Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能(UAP開発編)


2.7.4 SQL連絡領域の構成と内容

DMLを実行すると,HiRDB/SDはDMLが正常に実行されたかどうかを示す情報をUAPに返します。これらの情報を受け取るための領域をSQL連絡領域といいます。SQLCODE,SQLWARN1〜SQLWARNFは,SQL連絡領域に格納されます。

〈この項の構成〉

(1) SQL連絡領域の構成

SQL連絡領域の構成を次の図に示します。

図2‒9 SQL連絡領域の構成

[図データ]

  • ( )内は領域の長さ(単位:バイト)を示しています。

  • SQLCABC,SQLCODE,およびSQLERRDの長さは,long型のサイズになります。

(2) SQL連絡領域の内容

SQL連絡領域の内容については,マニュアル「HiRDB UAP開発ガイド」の「SQL連絡領域の構成と内容」の「SQL連絡領域の内容」を参照してください。

マニュアル「HiRDB UAP開発ガイド」の記載内容と異なる部分だけ,次の表に示します。

表2‒6 SQL連絡領域の内容

レベル番号※1

連絡領域名

データ型

長さ(バイト)

内容

2

SQLCODE

long

8

DMLの実行結果を示すSQLCODEが返される領域です。

2

SQLERRM

256

DMLの実行結果を示すメッセージの情報が返される領域です。

3

SQLERRML

short

2

SQLERRMC領域に返されるメッセージの長さが返される領域です。

3

SQLERRMC

char

254

SQLCODEに対応するメッセージが返される領域です。

SQLCODEとメッセージの対応については,マニュアル「HiRDB メッセージ」の「メッセージの記述形式」の「メッセージに関する注意事項」を参照してください。

2

SQLERRD

long

8×6

HiRDBの内部状態を示す領域で,データ型がlongの6個の配列です。

  • SQLERRD[0]:未使用

  • SQLERRD[1]:未使用

  • SQLERRD[2]:

    SQLCODEの値が0,または正の場合:

    SDBデータベース操作のアクセス件数※2

    SQLCODEの値が負の場合:

    この領域は使用しないでください。

  • SQLERRD[3]:システムが使用します。

  • SQLERRD[4]:システムが使用します。

  • SQLERRD[5]:未使用

(凡例)

−:該当しません。

注※1

レベル番号は,SQL連絡領域の包含関係を示しています。例えば,レベル番号1の連絡領域はレベル番号2の連絡領域で構成されることを示しています。

注※2

SDBデータベース操作のアクセス件数については,マニュアル「HiRDB 構造型データベース機能」の「監査証跡表の列に格納される情報についての留意事項(SDBデータベース操作イベントの場合)」の「SDBデータベース操作イベントのアクセス件数」の表を参照してください。

(3) SQL連絡領域の展開

SQL連絡領域のデータ記述項は,pdsdbcblコマンドによるプリプロセスの際に,登録集原文のCOPY文がポストソースに自動的に出力されます。そのため,SQL連絡領域のデータ記述項を,COBOLソースプログラム中に記述する必要はありません。

登録集原文によって展開されるデータ記述項については,マニュアル「HiRDB UAP開発ガイド」の「SQL連絡領域の展開」を参照してください。