Anylogic:将参数值写入数据库表

问题描述

我正在尝试将 Anylogic 中的参数值写入数据库表的特定单元格中。该参数在 my main 中声明,并通过函数中的特定计算获取其值。现在我想将计算出的值存储在数据库表中。

我尝试使用

INSERT INTO query (executeStatement("INSERT INTO eu (country,capital) VALUES ('Croatia','Zagreb')"); --> example from help)

...但我无法在查询中使用特定参数/作为值。我只能写直接输入(如“克罗地亚”),但不能写参数。最后,我希望表格从参数中获取当前值并将该值插入表格中。 我在帮助功能里找到了插入连接工具,可惜只有专业版才有。

有没有人知道如何处理这个问题?
谢谢你,周末愉快!

解决方法

我不知道我是否完全理解您的需求,但如果您想做的只是将值插入表中,那么您在“executeStatement”中所做的实际上已经足够了:

INSERT INTO eu (country,capital) VALUES ('Croatia','Zagreb')

如果您所说的“特定单元格”实际上是替换给定行中现有字段的内容,则您想改用 UPDATE

UPDATE eu SET country='New country',capital='New capital' WHERE <some criteria matching targeted row>

警告:不要忘记 WHERE 语句,否则表格的每一行都会被这些相同的新值破坏。

如果您想要做的是插入一个或多个新行,其中填充了数据库中已存在的内容,那么您可以直接从 SELECT 查询构建数据集:

INSERT INTO eu (country,capital)
 SELECT country_field,capital_field
   FROM some_table
  WHERE some_criteria

SELECT 语句之后的 UPDATE 查询绝对可以是任何内容。如果需要,它也可以参考同一张表。唯一的要求是形成与目标字段具有相同结构和相同类型(至少兼容)的行。

,

您需要调整定义 SQL 语句的字符串。

代替

"INSERT INTO eu (country,'Zagreb')"

你写

"INSERT INTO eu (country,capital) VALUES ('"+myParam1+",'"+myParam2+"')"

假设您有 2 个 String 类型的参数来保存字符串文本。

您的 dbase 列类型必须与您要写入的参数(或变量)类型相匹配

要非常小心上面的 ' 和 " 符号