在ODBC编程中,首先用ODBC API中的SQLBindCol来绑定数据集中的某列数据到变量,然后再用SQLFetch来读取数据,每调用一次SQLFetch,结果集指针就向下移动一行,那么,我们要调用多少次SQLFetch才能读完整个结果集呢?在这里就必须得到结果集的行数,具体方法如下:
微软提供了GetRecordCount这个函数,但直接调用这个函数的话,要么就得到1,要么就得到0。百度了N久,终于让我找到了答案,原来在调用GetRecordCount之前,必须调用一次MoveLast函数,相当于把指针调到结果集的最后,从直观上讲就是让指针遍历一次结果集,这样做虽然达到了目的,但是牺牲了效率。无意之中让我看到了一种更巧妙的方法,具体就不解释了,代码如下:
RETCODE retCode;
retCode=SQLFetch(..);
while(retCode==SQL_SUCCESS)
{
//处理数据的代码
retCode=SQLFetch(..);
}