下面是段查询代码:
with dm.query5 do
         begin
             close;
             sql.Clear;
             sql.Add('select * from bookinfo where 出版社名称=:bookid');
             parameters.ParamByName('bookid').Value:=trim(edit1.Text);
             open;
         end;
    我在edit1中输入了:人民邮电出版社,在bookinfo中出版社为人民邮电出版社的书有5本,我现在
  想取得当前的数量"5",可是我现在用dm.query5.recordcount,奇怪的是dm.query5.recordcount
  的数量为什么不是"5"了?
        请各位大哥帮帮忙,应该怎么做了,才能得到数量"5"?烦请写出代码,谢谢!

解决方案 »

  1.   

    你的代码应该没有什么问题,可能是虽然书有5本,但记录数却不是5个记录,另外如果是只想统计书的数量可以这样写:
    with dm.query5 do
             begin
                 close;
                 sql.Clear;
                 sql.Add('select count(*) from bookinfo where 出版社名称=:bookid');
                 parameters.ParamByName('bookid').Value:=trim(edit1.Text);
                 open;
             end;
      

  2.   

    你的dm.query5.recordcount得到的是什么值?
    with dm.query5 do
             begin
                 close;
                 sql.Clear;
                 sql.Add('select count(*) as i from bookinfo where 出版社名称=:bookid');
                 parameters.ParamByName('bookid').Value:=trim(edit1.Text);
                 open;
             end;
    再取fieldsvalue['i']的值.
      

  3.   

    如果你的dm.query5.recordcount值是0,那可能是你付的sql中 出版社名称=人民邮电出版社,而实际应该是出版社名称='人民邮电出版社'.
      

  4.   

    上面的说得对,对不起我的代码中忘了应该是 select count(*) as i 这样才能将统计结果取出来。
      

  5.   

    BDE  Query  RecordCount 本来就有问题,尤其是返问数据库服务器
                            返问 Paradox 这样的好象没有问题。 ADO  Query  RecordCount 好象没有问题。