为什么DAO得不到正确的数据?
在CMAINFRAME中声明变量
CDaoDatabase m_daoDB; CDaoRecordset m_daoRS;
在CMainFrame实现文件的构造函数中调用
m_daoDB.Open("zl.mdb");
m_daoRS.m_pDatabase = &m_daoDB;
m_daoRS.Open(AFX_DAO_USE_DEFAULT_TYPE, "SELECT * FROM zll", 0);
int n = GetRecordCount( ); //得到的n为1,而实际上n为3
为什么不能得到正确的数据?难道是程序有错误?
另外,CDaoRecordset.Open(dbOpenTable, "SELECT * FROM zll", 0); 程序提示建立空文档错误。是什么原因?
问题点数:36、回复次数:4Top
1 楼xtjqu(LPVOID)回复于 2005-06-02 07:21:21 得分 0
哈,有人遇到这种问题了
看看说明,你需要把你的RECORDSET从开始到最后运行一遍MoveNext(),然后这个GetRecordCount才会是正确的(MFC好弱智,不是你的错 :)
m_daoRS.MoveFirst();
while(!m_daoRS.IsEOF())m_daoRS.MoveNext();
int n = m_daoRS.GetRecordCount();//这里你的对象是漏写了吧Top
2 楼littlepig_2002(小朱)回复于 2005-06-02 11:16:06 得分 0
谢谢,那第二个问题是怎么回事?不能用dbOpenTable打开记录集(即表中数据原封不动的调到记录集中) 为什么会提示“建立新文档错误”Top
3 楼xtjqu(LPVOID)回复于 2005-06-02 11:58:33 得分 36
CDaoRecordSet::dbOpenTable?Top
4 楼littlepig_2002(小朱)回复于 2005-06-02 12:04:53 得分 0
好像CDaoRecordset没有dbOpenTable这个成员,编译器提示的。
我想也应该是类似的问题,因为dbOpenTable不能没有出处,因为他不是个全局变量。Top




