在Delphi 中, 我打开 TQuery.Open.     我查数据库有记录有记录。     我用 TQuery.RecordCount 第一 次、: TQuery.RecordCount = -1; 其实数据库有记录的。 当程序第二次运行到这里 TQuery.RecordCount 就不等于-1.   
  我发现在有的模块中不会这样, 有的模块会这样!
    
  我想问一下:这是什么问题。
  
  要怎么确保TQuery 在打开第一下: 用 TQuery.RecordCount 能准确读到记录条数!

解决方案 »

  1.   

    不知道。  在有的模块中TQuery.Open    后 马上用 TQuery.RecordCount 会有记录。 在其它模块使用相同的方法,  TQuery.Open 没有记录。   我不理解为什么会这样。  要怎么让 TQuery.Open 打开后  使用 TQuery.RecordCount  能准确读到有没有记录
      

  2.   

    检查下query的SQL语句有没有问题,看看SQL语句能不能查询出记录
      

  3.   

    quary语句中是否会有参数,第一次带了进来,第二次没有
      

  4.   

    我的SQL 没有问题:  TQuery 没有设置参数。  在Delphi 中试当纯打开 TQuery。 
      

  5.   

    打开后
    试试
    Query1.First; 
    Query1.Last; 
     
    或者
    Query1.FetchAll; 请参考
    http://topic.csdn.net/t/20020813/13/936606.html
      

  6.   

    一种情况一般是TQUERY后的结果集太大了才会产生。
    这个时候其实数据还在fetch中咧。大数据量的时候少用这些东西来判断。一般就之前用数据库的SQL 来测一下。如exists,count(*) 等。