-508   THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT POSITIONED ON A ROW OR ROWSET THAT CAN BE UPDATED OR DELETED

説明

指定されたカーソルがオブジェクト表の行または行セットに位置付けられなかったときに、アプリケーション・プログラムが UPDATE または DELETE WHERE CURRENT OF カーソル・ステートメントを実行しようとしました。カーソルを、更新または削除する行に位置づける必要があります。

次のような場合に、これが起こることがあります。
  • 同じアプリケーション・プログラムの別のカーソルが行を削除したか、索引列を更新したために、カーソルがその行の位置にない場合。これには、セーブポイントへのロールバックの結果行われる、 削除および、索引列更新が含まれます。
  • 依存動的カーソルで、FOR ROW n OF ROWSET 文節が指定され、現行の行セットの指定された行が更新または削除された場合。

システムの処置

このステートメントを処理することはできません。 データは更新または削除されませんでした。カーソル位置は変更されません。

プログラマーの応答

アプリケーション・プログラムのロジックを訂正して、 UPDATE または DELETE ステートメントが実行される前に、 オブジェクト表の意図した行にカーソルが正しく位置づけられるようにしてください。 単一行または非行セット・カーソルの場合、FETCH から SQLCODE +100 が戻されたときには、カーソルが行に配置されないことに注意してください。

SQLSTATE

24504