社区
数据库
帖子详情
数据库存在记录,为什么m_pRecordset->GetRecordCount()返回的确实-1
doglu
2005-05-12 05:06:57
如题
...全文
684
13
打赏
收藏
数据库存在记录,为什么m_pRecordset->GetRecordCount()返回的确实-1
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dasiu
2005-07-11
打赏
举报
回复
在对记录集合查询完毕后,包括DAO、ADO等的数据集合等,必须 m_pRecordset->MoveLast();然后使用m_pRecordset->GetRecordCount();才可以得到正确的记录数量。这个地方的说明,在MSDN上有的。
然后
notno
2005-06-27
打赏
举报
回复
受教了
Ozzman
2005-06-27
打赏
举报
回复
是有这样的问题,我的解决方法是:
DWORD dwCount = 0;
dwCount = pRst->GetRecordCount();
if (dwCount == -1)
{
// dwCount = 0;
if (pRst->EndOfFile != VARIANT_TRUE) pRst->MoveFirst();
while (pRst->EndOfFile != VARIANT_TRUE)
{
dwCount++;
pRst->MoveNext();
}
if (dwCount > 0) pRst->MoveFirst();
}
return dwCount;
aben456
2005-06-19
打赏
举报
回复
如果ODBC,那么需要先循环MoveNext一次;才有正确的结果
xwwang66
2005-06-14
打赏
举报
回复
因为str.Format("%d",pRst->GetRecordCount());时,你的pRst已经指到rsEOF所以就......
MajorVon
2005-06-14
打赏
举报
回复
adOpenDynamic
改adOpenKeyset
boqin
2005-06-14
打赏
举报
回复
检查你所访问的数据库表是否定义了主键,如果没有的话,铁定返回的是-1!
Kudeet
2005-06-14
打赏
举报
回复
在m_pSet->Open()前加上:
m_pSet->CursorType = adOpenStatic;
m_pSet->CursorLocation = adUseClient;
http://blog.csdn.net/laiyiling/archive/2005/04/29/367711.aspx
doglu
2005-05-13
打赏
举报
回复
帮我看看吧,谢谢
doglu
2005-05-13
打赏
举报
回复
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));
pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs";
pConn->Open("","sa","233",adConnectUnspecified);
//pRst=pConn->Execute("select * from authors",NULL,adCmdText);
//pRst->Open("select * from authors",_variant_t((IDispatch*)pConn),
// adOpenDynamic,adLockOptimistic,adCmdText);
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
pCmd->CommandText="select * from authors";
pRst->CursorLocation=adUseClient;
pRst=pCmd->Execute(NULL,NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("au_lname"));
pRst->MoveNext();
}
CString str;
str.Format("%d",pRst->GetRecordCount());
MessageBox(str);
pRst->Close();
pConn->Close();
pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();
这样的返回还是-1.怎么回事
friendzj
2005-05-12
打赏
举报
回复
m_pRecordset->CursorLocation=adUseClient; 这样就行了~
sboom
2005-05-12
打赏
举报
回复
m_pRecordset->MoveLast();
m_pRecordset->GetRecordCount();
oyljerry
2005-05-12
打赏
举报
回复
游标放到客户端 adUseClient
或遍历一遍记录集
基于ADO的VC++
数据库
操作类实现
【1】在stdafx.h中添加 #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 【2】在主进程的InitInstance()中添加 if(!AfxOleInit()) {
vc mysql封装类_[转]VC下ADO
数据库
操作的封装类
1 /******************************************************************2 模块名称:
数据库
操作类;3 实现功能:提供接口,实现数据的索引,和操作。4 研究人员:长寿梦;5 最后更新:2010-05-1267 预先操作:8 ...
VC下ADO
数据库
操作的封装类
模块名称:
数据库
操作类; 实现功能:提供接口,实现数据的索引,和操作。 研究人员:长寿梦; 最后更新:2010-05-12 预先操作: 【1】在stdafx.h中添加 #import "C:\Program Files\Com...
[转]VC下ADO
数据库
操作的封装类
转自:... 代码如下: 1 /****************************************************************** 2 模块名称:
数据库
操作类; 3 实现功能:提供接口,实现数据的索引,和操作。...
vc++ ado访问类 CAdoAcc.h
// AdoAcc.h: interface for the CAdoAcc class. ... 模块名称:
数据库
操作类; 实现功能:实现数据查询、插入、删除等操作,提供对sqlserver和oracle的联接方式。 研究人员:姜广新 最后更新
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章