PowerBuilder 6.0 (バックエンドとして Ingres) を使用して開発されたアプリケーションがあります。アプリケーション コードは 2009 年以来更新されていませんでしたが、突然更新エラーが表示されるようになりました。データを保存しようとすると、「 Row Changes between retrieve and update 」のようなエラー メッセージが表示されます。ユーザーが保存しようとしている間、元のデータがデータベースの下で変更されていないことを確認しています。
アプリケーションに次のエラー メッセージが表示されます。
エラーメッセージ
アップデートに失敗しました。
データベース エラー: -3: 取得と更新の間で行が変更されました。
データベースに変更はありません。
Update os_sec1 set encrpt_pw='XXXXX' WHERE user_id ='Q0001 ' and USER_DEC = 'Mayur Patel_ _ __ _ __ _ __' and last_pw_change = {ts'2012-03-12 13:27:28'}
update ステートメントの where cause の値が間違っていることに気付きました。[User Desc] フィールドに余分なスペースがある値が表示されます。[User Decs] フィールドの長さは 40 文字であり、update ステートメントは合計 40 文字 (値 + 空白) を示していることがわかります。余分なスペースを考慮してアプリケーションがどのように起動するかはわかりません。
その他の驚くべき部分は、アプリケーションが機能しているユーザーもいれば、エラーが表示されているユーザーもいます。また、すべてのユーザーが Window 7 を使用しています。
誰が理由が考えられるか考えていますか? すべての入力に感謝します。