在Query中可能没有完全把数据取到客户端。要获得记录数,这样:
query1.FetchAll;
然后取query1.RecordCount—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    要取得记录数最好这样写SQL
    sql.add('select Count(*) from tb where No=3');Open后,query1.Fields.Fields[0].AsInteger就是记录数
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  2.   

    with query1 do
      begin
       close;
       sql.clear;
       sql.add('select * from tb where No= :No');
       params.parambyname('No').value := 3;
       open;
      end;
       if query1.RecordCount =0 then
        edit1.Text :='';
    试试看
      

  3.   

    上面的兄弟,谢谢你,我自己解决了问题,原来是No不能用来作字段名。
    真是的,我到CSDN不久,问了几个问题,每次都是自己解决,白送了两百多分:(
    不过我还是感谢大家的支持,我会给你加分的。:)