1

我有一个简单的数据库,想更新一个 int 值。我最初做一个查询并取回一个 ResultSet (sql::ResultSet)。对于结果集中的每个条目,我想修改表的一个特定列中的值,然后将其写回数据库/更新该行中的条目。

根据文档,我不清楚如何做到这一点。我不断看到“插入”语句以及更新 - 但我认为这不是我想要的 - 我想保持大部分数据行不变 - 只需更新一列。

有人可以指出一些示例代码或其他明确的参考/资源吗?

编辑:

或者,有没有办法告诉数据库更新特定字段(行/列)以将 int 值增加某个值?

编辑:

那么人们从 C++ 使用 MySQL 的典型方式是什么?使用 C api 还是 mysql++?我想我选择了错误的 API ......

4

1 回答 1

1

从对文档的快速浏览来看,Connector/C++ 是 Java JDBC API for C++ 的部分实现。我没有找到对可更新结果集的任何引用,因此这可能是不可能的。在 Java JDBC 中,如果语句是使用 ResultSet.CONCUR_UPDATABLE 并发创建的,则 ResultSet 接口支持更新当前行。

您应该调查 Connector/C++ 是否支持可更新的结果集。

编辑:要更新一行,您需要使用包含 SQL UPDATE 的 PreparedStatement,然后是语句的 executeUpdate() 方法。使用这种方法,您必须使用 WHERE 子句标识要更新的记录。例如

update users set userName='John Doe' where userID=?

然后您将创建一个 PreparedStatement,设置参数值,然后执行更新()。

于 2009-12-04T03:47:34.247 回答