m_pRecordset = m_pConnection->Execute("select * from DB where No = 153,&RecordsAffected,adCmdText);
得到m_pRecordset->RecordCount总是-1,。
当,我把这条语句替换成
m_pConnection->Execute("CREATE TABLE users(ID INTEGER,username TEXT,old INTEGER,birthday DATETIME)",&RecordsAffected,adCmdText);一点问题也没有。
请各位帮我想想,可能是什么地方出了问题。
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。
如果 Recordset 对象支持近似定位或书签,不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。
Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。
不知道你是不是因为这些原因造成了你的RecordCount为-1
你可以通过m_pRecordset->aodEOF()&&m_pRecordset->aodEOF()来判断是否为空
前几天在这里也看到一个朋友好像问题和你差不多,呵呵
连接在这里
http://community.csdn.net/Expert/topic/4177/4177987.xml?temp=.8535883
RecordCount一般情况下都没有用,直接用IsEof(),IsBof()来判断。
recordcount为遍历过的记录数,刚得到的recordset的recordcount为-1。