Anylogic:将参数值写入数据库表
Posted
技术标签:
【中文标题】Anylogic:将参数值写入数据库表【英文标题】:Anylogic: Write parameter value into Database table 【发布时间】:2021-05-10 04:52:57 【问题描述】:我正在尝试将 Anylogic 中的参数值写入数据库表的特定单元格。该参数在我的 main 中声明,并通过函数中的特定计算获取其值。现在我想将计算的值存储在数据库表中。
我尝试过使用
INSERT INTO query (executeStatement("INSERT INTO eu (country, capital) VALUES ('Croatia', 'Zagreb')"); --> example from help)
…但我无法在查询中使用特定参数/作为值。我只能写直接输入(如“克罗地亚”),但不能写参数。最后,我希望表从参数中获取当前值并将值插入表中。 我在帮助功能中找到了一个插入连接工具,可惜只有专业版才有。
有人知道如何处理这个问题吗? 谢谢你,周末愉快!
【问题讨论】:
【参考方案1】:我不知道我是否完全理解您的需求,但如果您想做的只是将值插入表中,那么您在“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
UPDATE
语句之后的 SELECT
查询绝对可以是任何东西。如果需要,它也可以参考同一个表。唯一的要求是形成与目标字段具有相同结构和相同类型(至少兼容)的行。
【讨论】:
感谢您的评论,更新声明看起来很有希望!我也更新了我的问题,所以希望我的问题现在更清楚了。【参考方案2】:您需要调整定义 SQL 语句的字符串。
而不是
"INSERT INTO eu (country, capital) VALUES ('Croatia', 'Zagreb')"
你写
"INSERT INTO eu (country, capital) VALUES ('"+myParam1+", '"+myParam2+"')"
假设您有 2 个 String 类型的参数来保存字符串文本。
您的 dbase 列类型必须与您要写入的参数(或变量)类型匹配
小心上面的 ' 和 " 符号
【讨论】:
您好本杰明,感谢您的评论!我还有两个关于我的代码的问题,我将把我的代码放到这个线程的另一个答案中。如果你能帮助我会很棒:) @Pumluk 请将新问题作为新的 SOF 问题,这不是讨论区,请参阅 ***.com/help/how-to-ask :) (如果此答案有帮助,请点赞以供其他人查看)跨度> 感谢您的提示!我将通过“如何提问”:) 不幸的是,由于缺少声誉,我的投票没有显示出来......我昨天把我的问题作为新的 SOF 问题,在我意识到这是正确的方法之后。跨度>以上是关于Anylogic:将参数值写入数据库表的主要内容,如果未能解决你的问题,请参考以下文章