我不是一个Oracle forms的人,但是我不得不维护我们公司的一个旧的Oracle forms 6i应用程序,所以如果我听起来好像不是真的理解表单,我很抱歉,因为我不是。
我们有一个预先存在的表单,我必须对其进行一些更改。它具有主/详细类型设置。这里有一系列的“行”来表示细节。当我输入主信息和第一条详细记录时,我可以很好地保存。当我将第二行信息添加到详细信息部分时,它会到达键提交触发器,但当它实际命中"commit;“行时,它会给出错误消息"Record has me”。
但是表中只有一条记录与主详细信息相关联。当我清除该消息时,它会问:“是否要保存所做的更改?”如果我点击“是”,它只会在状态栏中给出“记录已经被插入”的消息,什么也不会发生。如果我试图退出表单,它会再次询问我是否要保存更改,但“是”只会让我留在表单上。单击“否”删除第二条详细信息记录。
我很困惑。很明显我漏掉了什么。
发布于 2015-06-15 04:21:06
您的详细数据块的Enforce Primary Key property设置为Yes。这意味着该块插入/更新/删除的行不是按rowid查询的,而是按主键查询的。
如何在数据库中设置主键并不重要,重要的是如何在表单中设置主键。检查详细信息块中的所有项目,并查找具有Primary Key (Item)属性的项目。然后检查数据库中是否有重复的记录。
我更喜欢使用rowid并取消选中Enforce Primary Key property。如果您的块直接使用数据库表(而不是视图),则可以很好地工作
https://stackoverflow.com/questions/30788740
复制相似问题