利用GetRecordCount函数不能得到它的实际记录数。 如果你只是想得到一下记录总数,可以使用SQL语句来得到,如果你还需要遍历记录,可以通过自己统计记录数目来得到。如果使用SQL语句,参考如下代码: CRecrodset rst; rst.Open(CRecordset::snapshot,"select count(*) from tablaname where ....",NULL); long l=rst.GetFieldValue(0); l为记录总数,大概的代码如上所示,如果你要详细的说明,可以参考开发文档当中我写的一篇关于对数据库编程的文章,里面有很详细的说明。
如果你只是想得到一下记录总数,可以使用SQL语句来得到,如果你还需要遍历记录,可以通过自己统计记录数目来得到。如果使用SQL语句,参考如下代码:
CRecrodset rst;
rst.Open(CRecordset::snapshot,"select count(*) from tablaname where ....",NULL);
long l=rst.GetFieldValue(0);
l为记录总数,大概的代码如上所示,如果你要详细的说明,可以参考开发文档当中我写的一篇关于对数据库编程的文章,里面有很详细的说明。
db.OpenEx("DSN=test;UID=;PWD=");
CRecordset set(&db);
set.Open(CRecordset::dynaset, "SELECT [1].字段1, [2].字段1 FROM 1 INNER JOIN 2 ON [1].字段1 = [2].字段1",CRecordset::readOnly);
while(!set.IsEOF())
{
set.MoveNext();
}
int n = set.GetRecordCount(); set.Close();
db.Close();表1:name: 1; field:字段1, text; record: 1,2,3,4;
表1:name: 2; field:字段1, text,primary key;record: 1,2,4;GetRecordCount返回3;
按照您的方法我试了一下出现不支持的连接的错误提示,您是否愿意看看我的源程序? SHELL [email protected]
int nRecCount=0;
pRs->MoveFirst();
while(!pRs->IsEOF())
{
nRecCount++;
pRs->MoveNext();
}
问题是我一使用MoveFirst()就出现越界错误,说明记录集无记录啊