---------Pro*CのSQLERRDホスト配列
-
13-12-2019 - |
質問
多くのドキュメントで知っているように、ホスト配列の3番目の要素が言及されています SQLCA.SQLERRD
すなわち sqlca.sqlerrd[2]
これまでにSQL文で処理された行の累積数(Pro*Cの場合)が含まれます。
誰かが他の要素の重要性を知っていますか? [0]
,[1]
そして、彼らは何を意味しますか?
解決
によると、 エラー処理のドキュメント, 、彼らは何もしません;彼らは将来の使用のために予約されていますが、実際に利用される可能性は低いように見え始めています。 sqlerrd
は次のように宣言されます long[6]
,しかし、唯一の [2]
と [4]
使用されているように見えますが、後者は解析エラーのSQLステートメントへのオフセットです。
しかし、彼らが[0]、[1]、または[3]を使用しないのは興味深いことです;彼らは以前のバージョンで何か他のもののために使用されたのだろうか。 この古いinformixリンク のための同様の意味を持つ同様の構造を持っています [2]
と [4]
, 、彼らが他のものを使うことを期待していたものにヒントを与えるかもしれません;しかし、無意味な偶然かもしれません。..
PostgreSQLは同じ構造を持っているようです, 、そうであるように DB2, 、および SQL Server 関連しているように見える何かを持っています。それは疑わしいほど標準のように見え始めています。..オラクルが部分的にしか遵守していないものではありますが。
他のヒント
「Informix Sqlガイド」(1998年2月)より:
(「最初」、「2番目」など。すべての言語が0で始まる配列を索引付けするわけではないためです。)
First-SELECT、UPDATE、INSERT、またはDELETEステートメントのPREPAREステートメントが正常に実行された後、またはselectカーソルが開かれた後、このフィールドには影響を受ける行の推定数
2番目-SQLCODEにエラーコードが含まれている場合、このフィールドには、ゼロまたはメインエラーの原因を説明するISAMエラーコードと呼ばれる追加のエラーコードが含まれ単一の行の挿入操作が成功した後、このフィールドには、その行に対して生成されたシリアル値の値が含まれます。
第三に、複数行の挿入、更新、または削除操作が成功した後、このフィールドには処理された行の数が含まれます。エラーで終了する複数行の挿入、更新、または削除操作の後、このフィールドには、エラーが検出される前に正常に処理された行の数が含まれます。
第四に、SELECT、UPDATE、INSERT、またはDELETEステートメントのPREPAREステートメントが成功した後、またはselectカーソルが開かれた後、このフィールドには、ディスクアクセスの推定重み付け合計と処理された行の合計が含まれます。
5番目-PREPARE、EXECUTE IMMEDIATE、DECLARE、またはstatic SQL文で構文エラーが発生した後、このフィールドには、エラーが検出された文テキストのオフセットが含まれます。
6番目-選択した行のフェッチが成功した後、または挿入、更新、または削除操作が成功した後、このフィールドには、処理された最後の行のrowid(物理アドレス)が含まれます。このrowid値が、データベース・サーバーが使用する行に対応するかどうか ユーザーへの戻り値は、データベースサーバーがクエリをどのように処理するかに依存します。 SELECTステートメントの場合。