将值插入数据库
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
我有一个 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