【问题标题】:Anylogic: Write parameter value into Database tableAnylogic:将参数值写入数据库表
【发布时间】:2021-05-10 04:52:57
【问题描述】:

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

我尝试过使用

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

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

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

【问题讨论】:

    标签: sql anylogic


    【解决方案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 问题,这不是讨论区,请参阅 stackoverflow.com/help/how-to-ask :) (如果此答案有帮助,请点赞以供其他人查看)跨度>
    • 感谢您的提示!我将通过“如何提问”:) 不幸的是,由于缺少声誉,我的投票没有显示出来......我昨天把我的问题作为新的 SOF 问题,在我意识到这是正确的方法之后。跨度>
    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    相关资源
    最近更新 更多