在ODBC API编程中得到结果集行数的方法

在ODBC编程中,首先用ODBC API中的SQLBindCol来绑定数据集中的某列数据到变量,然后再用SQLFetch来读取数据,每调用一次SQLFetch,结果集指针就向下移动一行,那么,我们要调用多少次SQLFetch才能读完整个结果集呢?在这里就必须得到结果集的行数,具体方法如下:

       微软提供了GetRecordCount这个函数,但直接调用这个函数的话,要么就得到1,要么就得到0。百度了N久,终于让我找到了答案,原来在调用GetRecordCount之前,必须调用一次MoveLast函数,相当于把指针调到结果集的最后,从直观上讲就是让指针遍历一次结果集,这样做虽然达到了目的,但是牺牲了效率。无意之中让我看到了一种更巧妙的方法,具体就不解释了,代码如下:

RETCODE retCode;

retCode=SQLFetch(..);
while(retCode==SQL_SUCCESS)
{         
      //处理数据的代码

      retCode=SQLFetch(..);
}

posted @ 2010-12-06 21:11  swtar  阅读(718)  评论(0)    收藏  举报