You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AnyLogic数据库表中如何将变量timeTaken的每步值存入数据库?

AnyLogic 定时存储变量值到数据库的正确实现方法
  • 不要尝试通过数据库表字段的默认值绑定变量,默认值是静态配置项,无法动态获取仿真运行时的实时变量值,这就是你之前报错的原因。
  • 正确做法是用**时间事件(Time Event)**触发数据插入动作:
    1. 在你的仿真主环境(或包含wholesaler代理的上层环境)中拖入一个时间事件组件,设置触发间隔为1个时间步(匹配你的仿真时间单位)。
    2. 双击时间事件,在动作编辑区写入数据库插入代码,示例如下:
      // 请替换为你的实际表名和字段名
      insertInto(time_records)
          .columns(time_records.simulation_time, time_records.time_taken)
          .values(time(), wholesaler.timeTaken)
          .execute();
      
  • 前置检查:
    • 确保数据库表的字段类型和变量匹配:time_taken字段设为int类型,与你的变量类型一致。
    • 确认数据库连接已正确配置,仿真可以正常访问目标数据库。
  • 替代方案(适合批量导出):
    先创建一个数据集(Dataset),添加simulation_time(double类型)和time_taken(int类型)列,时间事件中仅将数据写入数据集:
    yourDatasetName.add(time(), wholesaler.timeTaken);
    
    仿真结束后,再将数据集批量导出到数据库,这种方式适合不需要实时存储的场景。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:57:17