6.3.1 SQL連絡領域(SQLCA)
HiRDBクライアントを使用する場合,HiRDBクライアントで使用するSQL連絡領域(SQLCA)はXDM/RD E2の形式ではなく,HiRDBの形式となります。
ただし,設定される内容は,HiRDBサーバを使用する場合とは異なります。
HiRDBのSQL連絡領域の形式と,XDM/RD E2からHiRDBクライアントに返す内容を次の表に示します。
なお,XDM/RD E2からHiRDBクライアントに返す内容は,XDM/RD E2のバージョンおよびリビジョンの違いによって変化する場合があります。
次に示す内容はXDM/RD E2 06-00の内容です。XDM/RD E2のバージョンが06-01以降の場合は,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。
レベル番号※1 |
連絡領域名 |
データ 型 |
長さ (バイト) |
内容 |
||
---|---|---|---|---|---|---|
1 |
1 |
SQLCA |
− |
336 |
SQL連絡領域全体の名前を表します。 |
|
2 |
2 |
SQLCAID |
− |
8 |
SQLCAIDC領域,SQLCAIDX領域,SQLCAIDS領域,およびSQLCAIDE領域の内容を値として持ちます。 |
|
3 |
SQLCAIDC |
char |
5 |
SQL連絡領域である文字列('SQLCA')が設定されます。 |
||
3 |
SQLCAIDX |
char |
1 |
エラーの発生したXDM/RD E2のXDM識別子が設定されます。 |
||
3 |
SQLCAIDS |
char |
1 |
文字列('△')を値として持ちます。 |
||
3 |
SQLCAIDE |
char |
1 |
文字列('△')を値として持ちます。※2 |
||
2 |
SQLCABC |
long |
4 |
SQL連絡領域の長さ(336バイト)が設定されています。 |
||
2 |
SQLCODE |
long |
4 |
SQL実行後にHiRDBクライアントまたはXDM/RD E2から返されるリターンコードを受け取る領域です。リターンコードには次に示す意味があります。
リターンコードに対応するメッセージについては,SQLERRMC領域に設定されたメッセージがKFPAから始まる場合は,マニュアル「HiRDB Version 9 メッセージ」,JXZから始まる場合は,マニュアル「VOS3 データマネジメントシステム XDM E2系 メッセージ(XDM/RD E2)」を参照してください。 なお,リターンコードに対応するメッセージIDについては,表「リターンコードに対応するメッセージID」を参照してください。 |
||
2 |
2 |
SQLERRM |
− |
256 |
SQLERRML領域およびSQLERRMC領域の内容を値として持ちます。なお,SQLCODE領域に返されるリターンコードの正負によって次に示すように異なります。
|
|
3 |
SQLERRML |
short |
2 |
SQLERRMC領域に返されるメッセージの長さを示します。 |
||
3 |
SQLERRMC |
char |
254 |
SQLCODE領域に返されるリターンコードに対応するメッセージが格納される領域です。メッセージがKFPAから始まる場合は,HiRDBクライアントから返されたメッセージです。設定内容については,マニュアル「HiRDB Version 9 メッセージ」を参照してください。また,メッセージがJXZから始まる場合は,XDM/RD E2から返されたメッセージです。設定内容については,マニュアル「VOS3 データマネジメントシステム XDM E2系 メッセージ(XDM/RD E2)」を参照してください。 |
||
2 |
SQLERRP |
char |
8 |
XDM/RD E2が使用します。 |
||
2 |
SQLERRD |
long |
4×6 |
XDM/RD E2の内部状態を示す領域で,データ型がlongの6個の配列です。
|
||
2 |
SQLWARN0 |
char |
1 |
SQLWARN1〜Fの領域のどれかに警告フラグ('W')が設定された場合に'W'が設定されます。 |
||
2 |
SQLWARN1 |
char |
1 |
文字データの切り捨てが発生した場合に'W'が設定されます。または,繰返し列の検索でそのデータを受け取る埋込み変数の要素数が少なかったため,要素が切り捨てられた値を受け取った場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN2 |
char |
1 |
集合関数の処理でナル値を無視した場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN3 |
char |
1 |
検索結果の列の数と,検索結果を受け取る埋込み変数の数が一致しない場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN4 |
char |
1 |
WHERE句がないUPDATE文またはDELETE文が実行された場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN5 |
char |
1 |
SELECT文を実行した結果,検索結果が2行以上あった場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN6 |
char |
1 |
暗黙的にトランザクションが取り消された場合に'W'が設定されます。なお,X/Openに準拠したAPIを使用したUAPの場合は,トランザクションのロールバックが必要なときに'W'が設定されます。'W'が設定されている場合は,必ずトランザクションのロールバックをしてください。 |
||
2 |
SQLWARN7 |
char |
1 |
UPDATE文でSET句またはDELETE句に添字付きの繰返し列を指定したが,更新する行にその要素がないため,更新指定が無視されたものがある場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARN8 |
char |
1 |
予備 |
||
2 |
SQLWARN9 |
char |
1 |
予備 |
||
2 |
SQLWARNA |
char |
1 |
日付演算の結果,存在しない日付が現れたときに,XDM/RD E2が自動的にその月の最終日に修正した場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARNB |
char |
1 |
SQL実行時の演算途中でオーバーフローまたは0除算が発生したため,演算結果をナル値とした場合に'W'が設定されます。探索条件中でオーバーフローが発生した場合は,条件が真となった行が処理される以前に処理された行で,オーバーフローが発生したことになります。それ以外は空白が設定されます。 |
||
2 |
SQLWARNC |
char |
1 |
日付演算の結果で日間隔中の日の部分が,00〜99の範囲外となった場合に'W'が設定されます。それ以外は空白が設定されます。 |
||
2 |
SQLWARND |
char |
1 |
予備 |
||
2 |
SQLWARNE |
char |
1 |
予備 |
||
2 |
SQLWARNF |
char |
1 |
予備 |
||
2 |
SQLCASYS |
char |
16 |
予備 |
- (凡例)
-
−:該当しません。
- 注※1
-
表のレベル番号は,SQL連絡領域の包含関係を示します。例えば,レベル番号1の連絡領域はレベル番号2の連絡領域で構成されることを示します。
- 注※2
-
リモートデータベースアクセスしたサーバ側のデータベース管理システムの種別が設定されます。SQLCAIDEに設定される内容を次に示します。
設定値
サーバ側のデータベース管理システムの種別
リモートデータベースアクセスプロトコル
'D'
XDM/RD E2を示します。
DF-RDA
'△'
ローカルアクセスを示します。
該当しません
上記以外
次のどちらかを示します。
-
上記以外のデータベース管理システムを示します。
-
サーバシステムと接続していないため,データベース管理システムの種別を特定できません。
該当しません
-
- 注※3
-
COMMIT,ROLLBACKの時間は含まれません。
- 注※4
-
システム共通定義でpd_list_rowcount_in_renameオペランドにYを指定した場合だけ参照してください。
表6‒7 リターンコードに対応するメッセージID リターンコード
対応するメッセージID
-yyy(例:-125)
KFPA11yyyまたはJXZ1yyy(例:KFPA11125またはJXZ1125)
yyy(例:100)
KFPA12yyyまたはJXZ2yyy(例:KFPA12100またはJXZ2100)
-1yyy(例:-1000)
JXZ9yyy(例:JXZ9000)