【问题标题】:ADODB/C++: What does "Execute" return when single value is returned?ADODB/C++:返回单个值时“执行”返回什么?
【发布时间】:2014-06-27 02:21:50
【问题描述】:

我正在使用 ADO 访问数据库..

根据文档,_ConnectionPtr 对象的“Execute”方法返回一个 Recordset (http://msdn.microsoft.com/en-us/library/windows/desktop/ms675023(v=vs.85).aspx)

同样,_CommandPtr 对象的 Execute 方法也返回一个 Recordset/Stream/Nothing.. (http://msdn.microsoft.com/en-us/library/windows/desktop/ms681559(v=vs.85).aspx)

但是,我不明白的是,如果 sql 命令返回单个值会发生什么。

比如我的sql命令如下怎么办??

_ConnectionPtr myConnectionPtr;
_RecordsetPtr myRecordPtr;

myRecordPtr = myConnectionPtr -> Execute("select 1 from mydb..my_table", NULL, 1);

Execute 方法的返回值只是 1.. 所以我认为它不能存储在 _RecordsetPtr 对象中.. 似乎文档没有解释如果返回值不是 ReseultSet 会发生什么,而是一个值..

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: c++ sql database ado adodb


    【解决方案1】:

    它将始终是一个结果集——如果只有一个结果,则集大小将只是一条记录——但它仍然是一个集。

    还有,

    select 1 from mydb.my_table
    

    将返回与表 my_table 中的记录一样多的“1”——因此,如果表中有 100 条记录,则结果集将是 100 条记录,所有记录的值为“1”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      相关资源
      最近更新 更多