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

时间:2018-03-26 11:42:30

标签: anylogic agent-based-modeling

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

1 个答案:

答案 0 :(得分:0)

这在AnyLogic中是正常的(至少在最新的8.2.3版本中),所以我怀疑你的模型还有其他问题。

我刚试过它:

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

所有新的和更新的行都显示正确(包括在AnyLogic中查看表格时,即使我在模拟期间执行此操作,在更改后暂停它)。

请注意,如果您通过AnyLogic客户端检查数据库内容,您需要关闭/重新打开表以查看更改(如果您在开始运行时已经在其中)。当您关闭实验时,此视图自动更新,所以我怀疑这就是您所看到的。基本上,已经添加了行(并且如果您稍后在模型中查询它们将会存在),但AnyLogic客户端中的表仅在关闭/重新打开或实验关闭时显示更改。

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

  

关闭当前模拟后,表格始终会更新

你的意思是关闭实验吗?

如果您可以显示用于数据库插入和查询的逻辑/语法,则可能会有所帮助。