用query查询库表时,没有满足条件的记录,但query的记录数为1,有满足条件的记录时正确,为什么?
如何判断没有满足条件的记录时query为空?

解决方案 »

  1.   

    用这个条件判断试试!!
    query1.IsEmpty
      

  2.   

    query1.first;
    if query1.eof then ...
      

  3.   

    怎么会呢?
    没有满足条件的记录,但query的记录数为1?
    看看你的代码
      

  4.   

    select * from animals.dbf where name = 'abc'showmessage(inttostr(query1.RecordCount));
    结果为0,正确的呀!你的查询语句有问题。
      

  5.   

    怀疑你的ADO有问题,不应该是这样的结果!
      

  6.   

    怀疑 too
    ----------------------------------------
    ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
    热爱生活不爱美女关注平民无视贵族一奋青
    ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
      

  7.   

    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('Select Sum(Amt) as Amt From 数据表 Where (In_time Between :t1 and :t2) and (JZ_Tag=:t3)');
    Query1.ParamByName('t1').AsDate:=表单上的某一起始时间变量;
    Query1.ParamByName('t2').AsDate:=表单上的某一终止时间变量;
    Query1.ParamByName('t3').AsBoolean:=True;
    Query1.Open;数据表中有数据,但不符合条件。
      

  8.   

    结果应该是0,你的程序好象没有问题,
    但我不知道你的数据库是什么,
    也许是没有ADO补丁
      

  9.   

    没有满足条件的记录时,用Query.fields[0].asstring=''进行判断
      

  10.   

    我的数据库用的是PARADOX数据库。
    各位还有什么建议?
      

  11.   

    ADO要打补丁的呀,是不是没有打呢??
      

  12.   

    Select Sum(Amt) 肯定会返回一个结果,如果没有你要的记录的话,
    则Query.fieldByname('Amt').asInteger=0
    补丁的问题都是瞎说。
      

  13.   

    对呀,用了Sum,当然会有一条记录的。
      

  14.   

    对呀,用了Sum,当然会有一条记录的。
      

  15.   

    同意BoningSword, Sum(Amt)求和 无论有没有都会返回记录集。
    没有记录的话和为0。
      

  16.   

    如果要用recordcount 要select * from 表  where 条件。
      

  17.   

    query1.first;//一定要放,要不然很容易遗留上一次的记录
    if query1.eof then ...
      

  18.   

    我昨天才开始学delphi,只能帮你up