AnyLogic - 使用 Key-Value 数据库连接对象

Posted

技术标签:

【中文标题】AnyLogic - 使用 Key-Value 数据库连接对象【英文标题】:AnyLogic - Using the Key-Value database connectivity object 【发布时间】:2022-01-04 05:43:25 【问题描述】:

我正在使用数据库将数据传递给我的模型。如果有点慢,这非常方便(因为我需要在运行期间不断查询数据库)但那是另一回事了。

AnyLogic 在“连接”托盘上有一个漂亮的对象,称为键值表,它使您能够通过简单地指定表名称以及键和值字段等内容来创建键值(哈希图?)。它还要求您指定数据库 - 这是我的问题出现的地方......

我使用的数据库是可以从 getEngine().getModelDatabase() 访问的内部数据库,但是它是 ModelDatabase 类型,而 Key-Value 对象需要一个数据库类型的数据库。 Database 和 ModelDatabase 似乎来自不同的继承树,所以我无法将 ModelDatabase 转换为 Database。

这是我尝试过的:

但我在编译时收到错误“无法从 ModelDatabase 转换到数据库”。

我的数据库表如下所示:

如果可能,我宁愿不必将数据库作为单独的数据库对象导入。

有没有人尝试将此对象与 ModelDatabase 一起使用并找到解决此问题的方法?

【问题讨论】:

为什么不从 Excel 或 CSV 中读取这些内容?我从不使用 AnyLogic 内部数据库。它很慢而且有问题。 感谢您的回复,但没有帮助! 【参考方案1】:

如果您使用内部数据库(我一直使用它:D),则无需使用键值表。只需使用“数据库查询向导”(请参阅​​帮助)读取数据并自己将其转换为 LHM。键值对象是内部数据库出现之前的残余物......

【讨论】:

是的..但如果你不使用 2000 万行..:/ 感谢 Ben,又是一篇智慧的文章。很遗憾,对于我的用例来说,这确实是一个非常易于使用的对象。不过没关系,您的解决方案解决了我的问题。

以上是关于AnyLogic - 使用 Key-Value 数据库连接对象的主要内容,如果未能解决你的问题,请参考以下文章

AnyLogic——如何随机选择处于特定状态的代理

anylogic无法解析的编译问题

计算如何在 anylogic 上工作?

anylogic中的Agent连接: 我在使用Anylogic建立Agent模型时,在系统开始动态运行时,加入Agent,想让新加

使用 Anylogic 进行优化

AnyLogic:具有不同优先级的两个客户类别