我们使用 PowerBuilder 6.0(Ingres 作为后端)开发了应用程序。应用程序代码自 2009 年以来从未更新过。但是突然它开始显示更新错误。用户在尝试保存数据时收到错误消息,例如“检索和更新之间的行更改”。我们已经确认,在用户尝试保存的过程中,任何人都没有更改数据库下的原始数据。
应用程序显示以下错误消息。
错误信息
更新失败。
数据库错误:-3:检索和更新之间的行已更改。
没有对数据库进行任何更改。
更新 os_sec1 设置 encrpt_pw='XXXXX' WHERE user_id ='Q0001' 和 USER_DEC = 'Mayur Patel_ _ __ _ __ _ __' 和 last_pw_change = {ts'2012-03-12 13:27:28'}
我们刚刚注意到更新语句的原因有错误的值。[用户描述] 字段显示带有额外空间的值。我们发现 [User Decs] 字段的长度为 40 个字符,更新语句显示总共 40 个字符(值 + 空格)。我们不知道应用程序是如何开始考虑额外空间的。
其他令人惊讶的部分是,对于某些用户的应用程序正在运行,而对于其他用户则显示错误。此外,所有用户都在使用 Window 7。
任何人都知道可能是什么原因?感谢所有输入。