gpt4 book ai didi

c++ - 为什么 ICommandText::Execute 总是将 pRowsAffected 的值更新为 -1,即使语句已正确执行?

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:56 25 4
gpt4 key购买 nike

我尝试使用 ICommandText::Execute 来执行 sql select 和 Insert。但它总是将 RowsAffected 的值更新为 -1,并为 hr 返回值 S_OK。当我继续从表中获取“select 语句”的行时,它工作正常并提供了表中的正确数据。

  1. 但是 Insert 无法更新表中的数据,返回值为 S_OK,RowsAffected 值为 -1。
  2. 为什么“RowsAffected”始终为 -1,即使针对“select statement”执行的查询没有错误。

我的代码片段:

IMultipleResults * multipleRowSets;
DBROWCOUNT RowsAffected= 0;

hr = pICommandText->Execute(NULL, IID_IMultipleResults, NULL, &RowsAffected, (IUnknown**) &multipleRowSets);

请有人帮我找出问题。

最佳答案

在使用 mIMultipleResults 的情况下,IMultipleResults::GetResult 可用于获取受删除、更新和插入影响的行数。

hr = multipleRowSets->GetResult(NULL, 0, IID_IRowset, &RowsAffected, (IUnknown**) &rowset)

此处,RowsAffected 返回更新的行数。

引用: http://msdn.microsoft.com/en-us/library/windows/desktop/ms723081%28v=vs.85%29.aspx

关于c++ - 为什么 ICommandText::Execute 总是将 pRowsAffected 的值更新为 -1,即使语句已正确执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com