将值插入数据库

Insert values into the database

我有一个 table 测试,其中包含三列 ID、值和 value_sim。我想将值插入 value_sim 列。我写了下面的代码,但我收到了一个错误。

qry1->prepare("INSERT INTO TEST (VALUE_SIM)"
              "VALUES (:VALUE_SIM)"
              "where ID = 326");
qry1->bindValue(":VALUE_SIM", hxt_val_ft04);
qry1->exec();

hxt_val_ft04 是一个浮点变量,其中存储了一个值。

然后出现以下错误:

Error: QODBC Result :: exec: Unable to execute statement: "[Microsoft] [SQL Native Client] [SQL Server] Incorrect syntax near the keyword WHERE [Microsoft] [SQL Native Client] [SQL Server] Statement (s). (s) could not be prepared. "

请帮助我更正错误。

我认为您的查询中存在语法错误,您不能在 INSERT 语句中使用 WHERE,只需尝试删除此 where 条件:

qry1->prepare("INSERT INTO TEST (value_sim) VALUES (:VALUE_SIM);");
qry1->bindValue(":VALUE_SIM",hxt_val_ft04);
qry1->exec();

或者您可能想要编写一个更新查询:

qry1->prepare("UPDATE TEST SET value_sim = :VALUE_SIM WHERE ID = 326;");
qry1->bindValue(":VALUE_SIM",hxt_val_ft04);
qry1->exec();

编辑: 对于其他人可能对最终解决方案感兴趣:
"casting the value to float solves the problem"

qry1->bindValue(":VALUE_SIM", (float)hxt_val_ft04);

对我来说,这看起来像是 SQL 语法错误。不确定 WHERE 条件如何与 Insert 语句一起使用。

-- Example:
insert into test(value)values (1) -- Correct 
insert into test(value)values (1) where id = 1  -- Error