フィールドの説明
以下の表に示している名前は、SQL の INCLUDE ステートメントによって指定されている名前です。
大部分については、C (および C++)、COBOL、および PL/I では同じ名前を使用します。RPG/400® では、名前が 6 文字までに制限されているため、RPG では異なる名前を使用します。 ILE RPG では、ロング・ネームと 6 文字の短い名前との両方がサポートされています。 PL/I の名前と COBOL の名前が異なっている 1 つの事例に注意してください。
C の名前
COBOL の名前 PL/I の名前 |
ILE RPG の名前
RPG/400 の名前 |
フィールド
データ・タイプ |
フィールドの値 |
---|---|---|---|
SQLCAID
sqlcaid |
SQLCAID
SQLAID |
CHAR(8) | ストレージ・ダンプ用の「目印」として、「SQLCA」が入ります。 |
SQLCABC
sqlcabc |
SQLCABC
SQLABC |
INTEGER | SQLCA の長さ 136 が入ります。 |
SQLCODE
sqlcode |
SQLCODE
SQLCOD |
INTEGER | SQL 戻りコードが入ります。
|
SQLERRML1
sqlerrml |
SQLERRML
SQLERL |
SMALLINT | SQLERRMC の長さ標識 (0 から 70 までの範囲)。0 は SQLERRMC の値が無関係であることを示します。 |
SQLERRMC1
sqlerrmc |
SQLERRMC
SQLERM |
CHAR(70) | SQLCODE に関連するメッセージ置換テキストが入ります。 CONNECT および SET CONNECTION の場合、この SQLERRMC フィールドにはその接続に関する情報が入ります。 置換テキストについての説明は、表 4 を参照してください。 |
SQLERRP
sqlerrp |
SQLERRP
SQLERP |
CHAR(8) | エラーまたは警告を戻したプロダクトおよびモジュールの名前が入ります。
最初の 3 文字は、次のようにプロダクトを識別します。
|
SQLERRD
sqlerrd |
SQLERRD
SQLERR2 |
アレイ | 診断情報が提供される 6 つの INTEGER 変数が入ります。診断情報の説明については、表 3 を参照してください。 |
SQLWARN
sqlwarn |
SQLWARN
SQLWRN3 |
CHAR(11) | 11 個の CHAR(1) 警告標識です。それぞれにブランク、「W」、または「N」のいずれかが入ります。 |
SQLSTATE
sqlstate |
SQLSTATE
SQLSTT |
CHAR(5) | 直前に実行された SQL ステートメントの結果を示す戻りコードです。 |
注 :
|
C の名前
COBOL の名前 PL/I の名前 |
ILE RPG の名前
RPG/400 の名前 |
フィールドの値 |
---|---|---|
SQLWARN0
sqlwarn[0] |
SQLWARN(1)
SQLWN0 |
「W」または「N」が入っている他の標識が 1 つでもあれば、「W」が入ります。他の標識がすべてブランクの場合は、ブランクが入ります。 |
SQLWARN1
sqlwarn[1] |
SQLWARN(2)
SQLWN1 |
ホスト変数への割り当て時にストリング列の値が切り捨てられた場合は「W」になります。 *NOCNULRQD が CRTSQLCI または CRTSQLCPPI コマンド (または SET OPTION ステートメントの CNULRQD(*NO)) で指定され、ストリング列の値が C NUL 終了ホスト変数に割り当てられ、しかもそのホスト変数が結果を入れるには十分な大きさであるが、NUL 終了文字を入れるには十分な大きさでない場合は、ここに 'N' が入ります。 |
SQLWARN2
sqlwarn[2] |
SQLWARN(3)
SQLWN2 |
関数の引数から NULL 値が削除された場合は、「W」が入ります。ただし、MIN 関数または MAX 関数の場合は、必ずしも「W」に設定されるわけではありません。それらの関数の結果は、NULL 値の削除に左右されないからです。 |
SQLWARN3
sqlwarn[3] |
SQLWARN(4)
SQLWN3 |
列の数がホスト変数の数よりも多い場合には、「W」が入ります。 |
SQLWARN4
sqlwarn[4] |
SQLWARN(5)
SQLWN4 |
準備された UPDATE または DELETE ステートメントに WHERE 文節が指定されていない場合に、 「W」が入ります。 |
SQLWARN5
sqlwarn[5] |
SQLWARN(6)
SQLWN5 |
OPEN ステートメントの後のカーソルの能力を示すための文字値 1 (読み取り専用)、2 (読み取りおよび削除)、または 4 (読み取り、削除、および更新) が入ります。 |
SQLWARN6
sqlwarn[6] |
SQLWARN(7)
SQLWN6 |
日付演算の結果、月の終わりの調整となった場合に、'W' が入ります。 |
SQLWARN7
sqlwarn[7] |
SQLWARN(8)
SQLWN7 |
予約済み |
SQLWARN8
sqlwarn[8] |
SQLWARN(9)
SQLWN8 |
文字変換の結果に置換文字が含まれている場合に、'W' が入ります。 |
SQLWARN9
sqlwarn[9] |
SQLWARN(10)
SQLWN9 |
予約済み |
SQLWARNA
sqlwarn[10] |
SQLWARN(11)
SQLWNA |
予約済み |
C の名前
COBOL の名前 PL/I の名前 |
ILE RPG の名前
RPG/400 の名前 |
フィールドの値 |
---|---|---|
SQLERRD(1)
sqlerrd[0] |
SQLERRD(1)
SQLER1 |
SQLCODE が 0 より小さい場合に、CPF エスケープ・メッセージの最後の 4 文字が入ります。例えば、メッセージが CPF5715 であれば、X'F5F7F1F5' が SQLERRD(1) に入れられます。1 プロシージャーの呼び出しの場合、RETURN ステートメントで指定された 戻り状況値が入ります。 RETURN ステートメントで戻り状況値が指定されていない場合、またはプロシージャーが外部プロシージャーの場合は、次のようになります。
|
SQLERRD(2)
sqlerrd[1] |
SQLERRD(2)
SQLER2 |
SQL コードが 0 より小さい場合に、CPD 診断メッセージの最後の 4 文字が入ります。1 CALL ステートメントの場合は、SQLERRD(2) には結果セットの数が入ります。 OPEN ステートメントでは、カーソルが変更に反応しない場合、SQLERRD(2) には結果セットに含まれる実際の行数が入ります。 カーソルが変更に反応する場合、SQLERRD(2) には結果セットに含まれる行数の推定値が入ります。 |
SQLERRD(3)
sqlerrd[2] |
SQLERRD(3)
SQLER3 |
状況ステートメントについての CONNECT の場合は、SQLERRD(3) には接続状況に関する情報が入ります。詳しくは、CONNECT (タイプ 2)を参照してください。
INSERT、MERGE、UPDATE、REFRESH、DELETE の場合は、影響を受ける行の数が入ります。 TRUNCATE ステートメントの場合、 値は -1 になる。 FETCH ステートメントの場合は、SQLERRD(3) には取り出された行の数が入ります。 PREPARE ステートメントの場合は、選択された行の見積数が入ります。 行数が 2 147 483 647 より多い場合は、2 147 483 647 が戻されます。 |
SQLERRD(4)
sqlerrd[3] |
SQLERRD(4)
SQLER4 |
PREPARE ステートメントの場合は、すべての実行で必要なリソースの相対的な数の見積もりが入ります。
この数は、索引、ファイル・サイズ、または CPU モデルなどの現在の可用性
によって異なります。これは、Db2 for
i Query Optimizer によって選択されたアクセス・プランの見積コストです。 CONNECT および SET CONNECTION ステートメントの場合は、SQLERRD(4) には会話のタイプが入り、コミット可能な更新を行うことができるかどうかが示されます。詳しくは、CONNECT (タイプ 2)を参照してください。 CALL ステートメントの場合、SQLERRD(4) には、プロシージャーが正常に実行されなかった原因となった、エラーのメッセージ・キーが入ります。QMHRTVPM API は、そのメッセージ・キーのメッセージ記述を戻すために使用できます。 DELETE、INSERT、MERGE、UPDATE の各ステートメントでトリガー・エラーが発生すると、トリガー・プログラムから通知されたエラーのメッセージ・キーが SQLERRD(4) に入ります。 QMHRTVPM API は、そのメッセージ・キーのメッセージ記述を戻すために使用できます。 FETCH ステートメントの場合は、結果行に LOB が含まれなければ、SQLERRD(4) には取り出された行の長さが入ります。 OPEN ステートメントの場合は、結果行に LOB が含まれなければ、SQLERRD(4) には結果行の長さが入ります。 |
SQLERRD(5)
sqlerrd[4] |
SQLERRD(5)
SQLER5 |
CONNECT または SET CONNECTION ステートメントでは、SQLERRD(5) には次の値が入ります。
DELETE、INSERT、MERGE、UPDATE の各ステートメントの場合は、参照制約とトリガーによって影響を受けた行の数が入ります。 EXECUTE IMMEDIATE または PREPARE ステートメントの場合、構文エラーの位置が入っていることがあります。 複数行の FETCH ステートメントでは、現在表にある最後の行が取り出された 場合は、SQLERRD(5) には +100 が入ります。 PREPARE ステートメントの場合、SQLERRD(5) には、準備済みステートメント内のパラメーター・マーカーの数が入ります。 |
SQLERRD(6)
sqlerrd[5] |
SQLERRD(6)
SQLER6 |
SQLCODE が 0 の場合に、SQL 完了メッセージの ID が入ります。 それ以外の場合、この値は未定義になります。 |
注記:
|
説明 | データ・タイプ |
---|---|
リレーショナル・データベース名 | CHAR(18) |
プロダクト識別 (SQLERRP と同じ) | CHAR(8) |
サーバー・ジョブのユーザー ID | CHAR(10) |
接続方式 (*DUW または *RUW) | CHAR(10) |
DDM サーバー・クラス名
|
CHAR(10) |
接続タイプ (SQLERRD(4) と同じ) | SMALLINT |