スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
SQL実行時の情報を受け取る領域の構成,及び内容について説明します。
SQL連絡領域の構成を次の図に示します。
図A-1 SQL連絡領域の構成
SQL連絡領域の内容を次の表に示します。
表A-1 SQL連絡領域の内容
レベル 番号※1 |
連絡領域名 | データ型 | 長さ (バイト) |
内 容 |
---|---|---|---|---|
1 | SQLCA | − | 336 [368] | SQL連絡領域全体の名前を表します。 |
2 | SQLCAID | − | 8 | SQLCAIDC領域,SQLCAIDS領域,及びSQLCAIDE領域の内容を値として持ちます。 |
3 | SQLCAIDC | char | 5 | SQL連絡領域である文字列('SQLCA')が設定されます。 |
3 | SQLCAIDS | char | 2 | HiRDBが使用します。 |
3 | SQLCAIDE | char | 1 | HiRDBが使用します。※2 |
2 | SQLCABC | long | 4 [8]※6 | SQL連絡領域の長さ(336 [368]バイト)が設定されています。 |
2 | SQLCODE | long | 4 [8]※6 | SQL実行後にHiRDBから返されるリターンコードを受け取る領域です。リターンコードには次に示す意味があります。 負:正常に終了していません 0:正常に終了しました 正:正常に終了したが,メッセージ情報があります。 リターンコードに対応するメッセージについては,マニュアル「HiRDB Version 8 メッセージ」を参照してください。なお,リターンコードに対応するメッセージは,次のように検索します。 リターンコード→対応するメッセージID -yyy → KFPA11yyy -1yyy → KFPA19yyy -3yyy → KFPA18yyy yyy → KFPA12yyy 3yyy → KFPA13yyy (例) <リターンコード>→<メッセージID> -125 → KFPA11125 -1200 → KFPA19200 -3200 → KFPA18200 100 → KFPA12100 3010 → KFPA13010 |
2 | SQLERRM | − | 256 | SQLERRML領域,及びSQLERRMC領域の内容を値として持ちます。なお,SQLCODE領域に返されるリターンコードの正負によって次に示すように異なります。
|
3 | SQLERRML | short | 2 | SQLERRMC領域に返されるメッセージの長さを示します。 |
3 | SQLERRMC | char | 254 | SQLCODE領域に返されるリターンコードに対応するメッセージが格納される領域です。設定内容については,マニュアル「HiRDB Version 8 メッセージ」を参照してください。 |
2 | SQLERRP | char | 8 | HiRDBが使用します。 |
2 | SQLERRD | long | 4※6×6 | HiRDBの内部状態を示す領域で,データ型がlongの6個の配列です。 SQLERRD[0]:未使用 SQLERRD[1]:未使用 SQLERRD[2]: SQLCODEの値が0,又は正の場合: 次のどれかの値が返されます。※3
配列を使った更新時にエラーとなった配列要素を示す値が返されます。※7 SQLERRD[3]:システムが使用します。 SQLERRD[4]:システムが使用します。 SQLERRD[5]:未使用 |
2 | SQLWARN0 | char | 1 | SQLWARN1〜Fの領域のどれかに警告フラグ('W')が設定された場合に'W'が設定されます。 |
2 | SQLWARN1 | char | 1 | 文字データの検索で,データを受け取る埋込み変数の長さが短いために,切り捨てられた値を受け取った場合,'W'が設定されます。 又は,繰返し列の検索で,データを受け取る埋込み変数の要素数が足りなかったために,要素が切り捨てられた値を受け取った場合,'W'が設定されます。 それ以外は空白が設定されます。 |
2 | SQLWARN2 | char | 1 | 集合関数の処理でナル値を無視した場合に'W'が設定されます。それ以外は空白が設定されます。 ただし,次のどちらかの場合は,集合関数の処理でナル値を無視しても空白が設定されることがあります。
|
2 | SQLWARN3 | char | 1 | 検索結果の列の数と,その検索結果を受け取る埋込み変数の数が一致しない場合,'W'が設定されます。それ以外は空白が設定されます※4。 |
2 | SQLWARN4 | char | 1 | WHERE句がないUPDATE文,又はWHERE句がないDELETE文が実行された場合,'W'が設定されます。それ以外は空白が設定されます。 なお,リモートデータベースアクセスの場合,未使用になります。 |
2 | SQLWARN5 | char | 1 | 予備 |
2 | SQLWARN6 | char | 1 | 暗黙的にトランザクションが取り消された場合に'W'が設定されます。それ以外は空白が設定されます。 |
2 | SQLWARN7 | char | 1 | UPDATE文で,SET句又はDELETE句に添字付きの繰返し列を指定した場合,更新する行に要素がなくてその更新が無視されたときに,'W'が設定されます。 それ以外は空白が設定されます。 なお,リモートデータベースアクセスの場合,未使用になります。 |
2 | SQLWARN8 | char | 1 | 予備 |
2 | SQLWARN9 | char | 1 | 予備 |
2 | SQLWARNA※5 | char | 1 | 日付演算の結果,存在しない日付が現れると,その月の最終日に修正した場合 'W' が設定されます。それ以外は空白が設定されます。 なお,リモートデータベースアクセスの場合,未使用になります。 |
2 | SQLWARNB※5 | char | 1 | SQL実行時の演算途中でオーバフロー,又は0除算が発生し,その演算結果をナル値とした場合,'W'が設定されます。それ以外は空白が設定されます。 なお,リモートデータベースアクセスの場合,未使用になります。 |
2 | SQLWARNC※5 | char | 1 | 日付演算の結果の日間隔中の日の部分が,00〜99の範囲内にない場合,'W'が設定されます。それ以外の場合,空白'△'になります。 なお,リモートデータベースアクセスの場合,未使用になります。 |
2 | SQLWARND | char | 1 | 外部サーバで発生したワーニングで,ほかのSQLWARNに分類できない場合,'W'が設定されます。 |
2 | SQLWARNE | char | 1 | 予備 |
2 | SQLWARNF | char | 1 | 予備 |
2 | SQLCASYS | char | 16 | HiRDBが使用します。 |
設定値 | サーバ側のデータベース 管理システムの種別 |
リモートデータベース アクセスプロトコル |
---|---|---|
'K' | SQL/Kを示します。 | OSI-RDA |
'O' | ORACLEを示します。 | OSI-RDA |
'P' | HiRDBを示します。 | OSI-RDA |
'R' | XDM/RDを示します。 | OSI-RDA |
'1' | RDB1 E2を示します。 | OSI-RDA |
'△' | ローカルアクセスを示します。 | 該当しません。 |
上記以外 | 次のどちらかを示します。
|
OSI-RDA |
返される値 | 分散サーバの種別 | |
---|---|---|
HiRDB又は XDM/RD |
HiRDB及び XDM/RD以外 |
|
SELECT文で取り出した行数 | 設定されます。 | サーバDBMSから行数が返された場合に設定されます。返されない場合,'0'が設定されます。 |
UPDATE文で更新した行数 | ||
DELETE文で削除した行数 | ||
INSERT文で挿入した行数 | ||
FETCH文で取り出した行数 | 設定されます。 | |
ASSIGN LIST文で作成した行数 | 使用できません。 | 使用できません。 |
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.