スケーラブルデータベースサーバ HiRDB Version 8 XDM/RD E2接続機能
HiRDBクライアントを使用する場合,HiRDBクライアントで使用するSQL連絡領域(SQLCA)はXDM/RD E2の形式ではなく,HiRDBの形式となります。
ただし,設定される内容は,HiRDBサーバを使用する場合とは異なります。
HiRDBのSQL連絡領域の形式と,XDM/RD E2からHiRDBクライアントに返す内容を表6-6に示します。
なお,XDM/RD E2からHiRDBクライアントに返す内容は,XDM/RD E2のバージョンおよびリビジョンの違いによって変化する場合があります。
次に示す内容はXDM/RD E2 06-00の内容です。XDM/RD E2のバージョンが06-01以降の場合は,マニュアル「VOS3 データマネジメントシステム XDM E2系 XDM/RD E2 SQLリファレンス」を参照してください。
表6-6 HiRDBのSQL連絡領域の形式と,XDM/RD E2からHiRDBクライアントに返す内容
| レベル番号※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 8 メッセージ」,JXZから始まる場合は,マニュアル「VOS3 データマネジメントシステム XDM E2系 メッセージ(XDM/RD E2)」を参照してください。 なお,リターンコードに対応するメッセージIDについては,表6-7を参照してください。 |
||
| 2 | 2 | SQLERRM | − | 256 | SQLERRML領域およびSQLERRMC領域の内容を値として持ちます。なお,SQLCODE領域に返されるリターンコードの正負によって次に示すように異なります。
|
|
| 3 | SQLERRML | short | 2 | SQLERRMC領域に返されるメッセージの長さを示します。 | ||
| 3 | SQLERRMC | char | 254 | SQLCODE領域に返されるリターンコードに対応するメッセージが格納される領域です。メッセージがKFPAから始まる場合は,HiRDBクライアントから返されたメッセージです。設定内容については,マニュアル「HiRDB Version 8 メッセージ」を参照してください。また,メッセージが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 | 予備 | ||
| 設定値 | サーバ側のデータベース管理システムの種別 | リモートデータベースアクセスプロトコル |
|---|---|---|
| 'D' | XDM/RD E2を示します。 | DF-RDA |
| '△' | ローカルアクセスを示します。 | 該当しません |
| 上記以外 | 次のどちらかを示します。
|
該当しません |
表6-7 リターンコードに対応するメッセージID
| リターンコード | 対応するメッセージID |
|---|---|
| -yyy(例:-125) | KFPA11yyyまたはJXZ1yyy(例:KFPA11125またはJXZ1125) |
| yyy(例:100) | KFPA12yyyまたはJXZ2yyy(例:KFPA12100またはJXZ2100) |
| -1yyy(例:-1000) | JXZ9yyy(例:JXZ9000) |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.