ADODB / C ++:" Execute"返回单个值时返回?

时间:2014-06-26 17:50:17

标签: c++ sql database ado adodb

我使用ADO访问数据库..

从文档中,_ConnectionPtr对象"执行"方法返回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,而是一个值..

如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

它始终是一个结果集 - 如果只有一个结果,则设置大小只是一条记录 - 但仍然是一组。

此外,

select 1 from mydb.my_table

将返回尽可能多的' 1'因为表my_table中有记录 - 所以如果表中有100条记录,结果集将是100条记录,所有记录都带有值' 1'