我在主从关系中有两个表。使用 TFDTables。我在 TDBGrid 中显示详细信息表
当我调用主表时,我可以成功创建一个详细记录。当我尝试添加第二个问题时,问题就开始了。
系统确实将第二条记录发布到数据库,但是当它在详细信息网格中为第三条记录添加新行时,它会用第二条记录中的信息填充它。更改这第三条记录会产生错误:
项目 xyz.exe 引发异常类 EFDDBEngineException,消息为“[FireDAC][Phys][FB]-312。确切更新影响了 [2] 行,而请求了 [1]。
此外,当我在 Delphi 的调试器中单击确定时,它会显示:
项目 xyz.exe 引发异常类 EFDException,消息为“[FireDAC][DApt]-400。更新命令更新了 [2] 而不是 [1] 记录。可能的原因:更新表没有 PK 或行标识符,记录已被另一个用户更改/删除。
但是更改确实存储在数据库中,就好像我更改了第二条记录一样,网格中的第二条记录也反映了第三条记录中输入的内容)我意识到这些正在生成,因为它尝试更新不存在的第三条记录.
当我关闭程序并检查数据库时,在错误之前的最后一个帖子的保存点,数据库中只有两条记录。当我重新打开应用程序时,网格会显示三个记录,第二个和第三个是相同的。
任何帮助或想法将不胜感激。
法利