我有一个包含三列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. "
请帮助我纠正错误。
答案 0 :(得分:1)
我认为您的查询中存在语法错误,您无法在INSERT语句中使用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();
编辑:对于其他人可能会对最终解决方案感兴趣:
“将值转换为float可以解决问题”
qry1->bindValue(":VALUE_SIM", (float)hxt_val_ft04);
答案 1 :(得分:0)
对我来说,它看起来像SQL语法错误。不确定插入语句如何使用WHERE条件。
-- Example:
insert into test(value)values (1) -- Correct
insert into test(value)values (1) where id = 1 -- Error