gpt4 book ai didi

c++ - 如何在 OCCI 中添加字段名作为变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:07 24 4
gpt4 key购买 nike

在下面的 C++ 代码中,我正在根据搜索值更新 emp 表的一个字段。但是这段代码不能正常工作。我得到中止的输出。

void UpdateData(string field_name,string updated_value,string search_value)
{
stmt->createStatement("UPDATE emp SET :1=:2 where search=:3");
stmt->setString(1,field_name);
stmt->setString(2,updated_value);
stmt->setString(3,search_value);
stmt->executeUpdate();
}

在我的程序中,用户将选择他们必须更新的字段,并将所选字段名称作为 field_name 参数传递到函数中。 updated_value 是用户输入的新值,search_value 是查找相应记录的搜索键。

如果我喜欢 stmt->createStatement("UPDATE emp SET field_name=:2 where search=:3");

它的工作..

但问题是,字段名称会根据用户的选择而变化。我该如何克服这个问题。还有其他办法吗?

最佳答案

不能用statement->setString()方法设置字段名;只有变量的值可以像这样绑定(bind)。我知道只有两种解决方案可以实现这一点(都不是特别好):

  1. 动态创建语句字符串

    string statement ="UPDATE emp SET " + fieldname + "=:1 where search=:2";
  2. 准备单独的语句,每个语句影响一个字段并在运行时选择

    const string STATEMENT_FIELD_CITY = "UPDATE emp SET CITY=:1 where search=:2";
    const string STATEMENT_FIELD_LAND = "UPDATE emp SET LAND=:1 where search=:2";

关于c++ - 如何在 OCCI 中添加字段名作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9571683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com