CRecordset.Open 只检索一条记录!
代码如下:
CDatabase m_db;
m_db.OpenEx(_T( "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=mydb;UID=root;PASSWORD=123123;OPTION=3;"), FALSE );
CRecordset recSet(&m_db);
recSet.Open(AFX_DB_USE_DEFAULT_TYPE, _T("SELECT * From articles"), CRecordset::executeDirect);
int nRecords = recSet.GetRecordCount(); // Equals to 1!
article表有1000多条记录。我尝试使用不同的数据库/表,但问题没有解决!
Here is the code:
CDatabase m_db;
m_db.OpenEx(_T( "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=mydb;UID=root;PASSWORD=123123;OPTION=3;"), FALSE );
CRecordset recSet(&m_db);
recSet.Open(AFX_DB_USE_DEFAULT_TYPE, _T("SELECT * From articles"), CRecordset::executeDirect);
int nRecords = recSet.GetRecordCount(); // Equals to 1!
the article table has more than 1000 records. I tried with different database/tables but problem not fixed!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是 CRecordset 工作方式的限制。您需要调用 MoveNext 直到 IsEOF 返回 TRUE,然后记录计数才会准确。
That's a limitation of the way CRecordset works. You'll need to call MoveNext until IsEOF returns TRUE, then the record count will be accurate.