为什么delphi中query.recordcount返回值总是-1?

最近在用delphi写一个程序。使用query返回结果集,读取recordcount时总是返回-1,这个令我很恼火。在网上查找了一些资料,原来一旦在数据中使用了Blob字段,Delphi为了节省时间(因为全部读取含有blob字段的数据行数需要大量时间),所以就不返回正确的行数了。

如果想要解决这个问题,就使用如下代码。当然,如果确实含有大量的blob数据,这样做会消耗大量的时间。

1 Query.Last;

2 iCount := Query.RecordCount;

3 Query.First;