从更新的数据库中读取最新行 table:Anylogic 8

Reading newest rows from the updated database table : Anylogic 8

在我的项目中,我必须根据某些逻辑继续在 table 中插入新行。在此之后,我希望每次触发事件时,都应该获取更新的 table 行。 但问题是没有访问新行。 table 总是在我关闭当前模拟后更新。去年发布了一个类似的案例,但答案并不明确,由于声誉评分较低,我无法对此发表评论。有谁知道 Anylogic 8.1.0 PLE 是否支持在运行时读取新更新的数据库 table 记录?或者还有其他一些有益的解决方案吗?

这在 AnyLogic 中工作正常(至少在最新的 8.2.3 版本中)所以我怀疑你的模型还有另一个问题。

我刚测试过:

  • 设置一个简单的 2 列数据库 table;
  • 在模型启动时列出其内容(通过查询);
  • 通过时间 1 事件更新所有行中的值(并添加一堆行);
  • 通过时间 2 事件列出其内容(通过查询)。

所有新的和更新的行都正确显示(包括在 AnyLogic 中查看 table 时,即使我在 模拟期间这样做,在变化)。

请注意,如果您通过 AnyLogic 客户端检查数据库内容,您需要 close/reopen table 来查看更改(如果您已经在其中)在启动 运行 时。当您关闭实验时,此视图 auto-update,所以我怀疑这就是您所看到的。基本上,已经添加了行(并且将在那里 when/if 您稍后在模型中查询它们)但是 AnyLogic 客户端中的 table 仅在 closing/reopening 它或当实验已结束。

由于您使用了 SQL 语法(而不是 QueryDSL 替代语法)来执行插入操作,因此我还检查了这两个选项(两种情况下一切都一样)。

The table is always updated after i close the current simulation

你是说什么时候关闭实验?

如果您可以显示您用于数据库插入和查询的 logic/syntax,这可能会有所帮助。