MSDN中有解释:
The record count is maintained as a “high water mark” — the highest-numbered record yet seen as the user moves through the records. The total number of records is only known after the user has moved beyond the last record.
也就是说,GetRecordCount返回的是数据表曾经移动到的最大记录号,因此只有你通过MoveNext方式直到IsEOF返回TRUE之后,GetRecordCount才会返回正确的记录数。