将值插入数据库

时间:2015-06-29 09:12:40

标签: sql qt qtsql

我有一个包含三列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. "

请帮助我纠正错误。

2 个答案:

答案 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